Storm配置运行

Storm核心概念

Nimbus:Storm集群主节点,负责资源分配和任务调度。我们提交任务和截止任务都是在Nimbus上操作的。一个Storm集群只有一个Nimbus节点。

Supervisor:Storm集群工作节点,接受Nimbus分配任务,管理所有Worker。

Worker:工作进程,每个工作进程中都有多个Task。

Task:任务,每个Spout和Bolt都是一个任务,每个任务都是一个线程。

Topology:计算拓扑,包含了应用程序的逻辑。

Stream:消息流,关键抽象,是没有边界的Tuple序列。

Spout:消息流的源头,Topology的消息生产者。

Bolt:消息处理单元,可以过滤、聚合、查询数据库。

Stream grouping:消息分发策略,一共6种,定义每个Bolt接受何种输入。

Reliability:可靠性,Storm保证每个Tuple都会被处理。

                  Storm.yaml常用配置项


配置选项名称


配置选项作用


topology.max.task.parallelism


每个Topology运行时最大的executor数目


topology.workers


每个Topology运行时的worker的默认数目,若在代码中设置,则此选项值被覆盖


storm.zookeeper.servers


zookeeper集群的节点列表


storm.local.dir


Storm用于存储jar包和临时文件的本地存储目录


storm.zookeeper.root


Storm在zookeeper集群中的根目录,默认是“/”


ui.port


Storm集群的UI地址端口号,默认是8080


nimbus.host:


Nimbus节点的host


supervisor.slots.ports


Supervisor 节点的worker占位槽,集群中的所有Topology公用这些槽位数,即使提交时设置了较大数值的槽位数,系统也会按照当前集群中实际剩余的槽位数来 进行分配,当所有的槽位数都分配完时,新提交的Topology只能等待,系统会一直监测是否有空余的槽位空出来,如果有,就再次给新提交的 Topology分配


supervisor.worker.timeout.secs


Worker的超时时间,单位为秒,超时后,Storm认为当前worker进程死掉,会重新分配其运行着的task任务


drpc.servers


在使用drpc服务时,drpc server的服务器列表


drpc.port


在使用drpc服务时,drpc server的服务端口

Storm运行依赖zookeeper,需启动zookeeper,在此不做过多介绍可参考:https://www.cnblogs.com/zhaojiankai/p/7126181.html

Zookeeper集群在Storm集群中的作用:

Zookeeper集群负责Nimbus节点和Supervior节点之间的通信,监控各个节点之间的状态。比如通常我们提交任务的时候是在Nimbus节点上执行的,Nimbus节点通过zk集群将任务分发下去,而Supervisor是真正执行任务的地方。Nimbus节点通过zk集群监控各个Supervisor节点的状态,当某个Supervisor节点出现故障的时候,Nimbus节点就会通过zk集群将那个Supervisor节点上的任务重新分发,在其他Supervisor节点上执行。这就意味着Storm集群也是高可用集群,如果Nimbus节点出现故障的时候,整个任务并不会停止,但是任务的管理会出现影响,通常这种情况下我们只需要将Nimbus节点恢复就可以了。Nimbus节点不支持高可用,这也是Storm目前面临的问题之一。不过一般情况下,Nimbus节点的压力不大,通常不会出现问题。

一般情况下,Zookeeper集群的压力并不大,一般只需要部署3台就够了。Zookeeper集群在Storm集群中逻辑上是独立的,但在实际部署的时候,一般会将zk节点部署在Nimbus节点或Supervisor节点上。

安装:

1.解压安装文件到制定的目录,并把storm加入到环境变量

wget http://apache.fayea.com/storm/apache-storm-1.0.0/apache-storm-1.0.0.tar.gz
sudo tar -zxvf apache-storm-0.9.6.tar.gz -C /usr/local
cd /usr/local
sudo mv apache-storm-0.9.6 storm
sudo vi /etc/profile
export STORM_HOME=/usr/local/storm
export PATH=$PATH:${STORM_HOME}/bin
sudo source /etc/profile

2.配置storm.yaml

storm.zookeeper.servers:
- "node3"

nimbus.seeds: ["node3"]

supervisor.slots.ports: 
- 6700
- 6701
- 6702
- 6703

ui.port: 8889

storm.local.dir: "/usr/local/storm/data"

注意:以上配置,凡是有冒号的地方,冒号后都要有个空格。

将配置好的拷贝到其余两台机器上

[[email protected] local]# scp -pr apache-storm-1.0.0 [email protected]:/usr/local/
[[email protected] local]# scp -pr apache-storm-1.0.0 [email protected]:/usr/local/

启动 nimbus、supervisor、ui

cd /usr/local/storm/bin

./storm nimbus

./storm supervisor

./storm ui

Storm常用命令

  1、任务提交命令:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】

  storm jar /export/servers/storm/examples/storm-starter/storm-starter-topologies-1.0.3.jar org.apache.storm.starter.WordCountTopology  wordcount

  与hadoop不同的是:不需要指定输入输出路径 如:hadoop jar /usr/local/wordcount.jar /data.txt /wcout

##杀死任务命令格式:storm kill name -w seconds
storm kill wordcount -w 10

##停用任务命令格式:storm deactivte name
storm deactivte wordcount

##启用任务命令格式:storm activate name
storm activate wordcount

##平衡任务命令格式:storm rebalance name
storm rebalance wordcount

原文地址:https://www.cnblogs.com/Bkxk/p/10249039.html

时间: 2024-10-10 00:07:28

Storm配置运行的相关文章

用C/C++实现对STORM的运行信息查看和控制

最近公司有个需求,需要在后端应用服务器上实时获取STORM集群的运行信息和topology相关的提交和控制,经过几天对STORM UI和CMD源码的分析,得出可以通过其thrift接口调用实现这些功能.先下载一个thrift库进行编码和安装.关于thrift可以参见这个地方.安装完成后,从STORM源码中将storm.thrift拷贝到thrift目录下.输入: hrift -gen cpp storm.thrift 会得到一个gen-cpp目录,里面就是thrift先关脚本的C++实现.我们先

storm 配置,呵呵。

配置项 配置说明 storm.zookeeper.servers ZooKeeper服务器列表 storm.zookeeper.port ZooKeeper连接端口 storm.local.dir storm使用的本地文件系统目录(必须存在并且storm进程可读写) storm.cluster.mode Storm集群运行模式([distributed|local]) storm.local.mode.zmq Local模式下是否使用ZeroMQ作消息系统,如果设置为false则使用java消息

IKAnalyzer在idea配置运行出现 Main Dictionary not found!!!

下载了IKAnalyzer源码后,配置运行后出现了Main Dictionary not found!!! 异常 跟进去后发现是配置文件没有找到org/wltea/analyzer/dic/main2012.dic,查找发现idea生成的build目录中并没有main2012.dic这个文件 当我把这个文件手动放入dic目录后,运行是可以的.后来经过一顿查找,找到了一个解决方案. Project Structure -> Modules   点右边+,选择1,然后指向resource目录,选择C

IntelliJ IDEA 配置运行程序

IntelliJ IDEA 对于Javaer开发来说还是很nice的,就是第一次用可能配置项有点生疏,这里就记录一下IntelliJ IDEA 配置运行程序. 1. 点击Edit Config... 2.点击Configure...   然后设置本地Tomcat路径 3.点击Deployment,然后点击+按钮,在弹出框里选择启动项.(ps:图中工程名均已打码处理),选中启动项点击弹出框的"OK"按钮.Application context可以设置每次打开的默认路径 4.给你的这次设置

在Ubuntu下配置运行Hadoop2.4.0单节点配置

还没有修改hosts,请先按前文修改. 还没安装java的,请按照前文配置. (1)增加用户并设立公钥: sudo addgroup hadoop sudo adduser --ingroup hadoop hduser su - hduser cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys ssh localhost exit   (2)把编译完的hadoop复制到/usr/local目录,并修改目录权限 cp –r /root

zabbix 客户端安装配置运行

1 创建zabbix 用户 groupadd zabbix; useradd -g zabbix zabbix; passwd zabbix; 两次输入密码 2 下载获得zabbix的包,然后解压 tar zxvf zabbix-2.2.3.tar.gz; 3 安装 cd /home/zabbix/zabbix-2.2.3; ./configure --with-net-snmp --with-libcurl --enable-agent --prefix=/usr/local/zabbix s

eclipse配置运行环境

java开发初学者,相当于做笔记了: 新建web项目后,想要验证配置是否正确,需要配置运行环境:窗口-->首选项  如下 添加本地tomcat的安装目录: 再在web项目构建路径,添加对应的tomcat:

Storm 配置图文解析

Storm 配置图文解析 参考阅读:http://www.xiaofateng.com/?p=959 ============================== | sample-topology | | ------------------------ | Task 1 Task 2 Task 3 | | Worker Process 1 | | T1 T2 T3 | | +--------+ | | Spout => Bolt => Bolt | | +------+ | +----+

JDK - Tomcat - Eclipse - JSP - Servlet 配置运行全攻略

花了将近两个月的时间,从 JDK 开始一步一步摸索,历经千辛万苦,终于让第一个 Servlet 运行起来了,创建第一个 Servlet  程序确实要比创建第一个 Asp.net 程序困难多了,但是不要紧,趁着我还没忘先记下来,下回你再来的时候就轻松多了! 1.下载并安装JDK5.0 或者 JDK1.4.2 不要对版本号产生什么疑问,据我的理解,JDK5.0 也就是JDK1.5 ,是 JDK1.4.2 的重要升级,里面加了许多新的语言特性,为什么叫 5.0 而不叫1.5 ,我想可能是出于商业上的考