Twitter Storm的单机版安装配置已经在上一篇笔记中写的很清楚了:
本篇幅主要是讲述在单机版本的基础上扩展成为集群。
集群中所有的机器都需要安装与单机版一样的所需工具软件:
python、zookeeper、zeromq、jzmq、storm
将上述工具安装单机版教程中所描述的一一安装即可。
区别就在于配置了,这里配置三台服务器 hostA hostB hostC
首先修改zookeeper的配置文件:
vim /usr/local/zookeeper/conf/zoo.cfg :
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=hostA:2888:3888
server.2=hostB:2888:3888
server.3=hostC:2888:3888
上面这个配置文件可以在几台机一样。
echo 1 > /tmp/zookeeper/myid
这一步是每台电脑上都不同的。
具体的对应关系参见zoo.cfg中的server.x=hostname:portNumber:portNumber。
也就是说在我的配置文件中,hostA的echo是1,hostB的echo是2,hostC的echo是3。
然后分别启动三台机器:
bin/zkSever.sh start
这步是启动三台机器上的zookeeper,每台机器都要做。
接下去有几个命令是查看集群中zookeeper状态的:
•# echo stat | nc HOSTMASTER 2181
•# echo con“ | nc HOSTMASTER 2181
•# echo dump | nc HOSTMASTER 2181
•# echo wchs | nc HOSTMASTER 2181
•# echo ruok | nc HOSTMASTER 2181
•# bin/zkCli.sh.stat /
•# bin/zkCli.sh ls /
好了,zookeeper的集群配置好了。接下来配置storm:
vim /usr/local/storm/conf/storm.yaml :
storm.zookeeper.servers:
- "hostA"
- "hostB"
- "hostC"
storm.zookeeper.port: 2181
nimbus.host: "hostA"
storm.local.dir: "/tmp/storm"
storm.local.mode.zmq: true
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
说明:
storm.local.dir表示storm需要用到的本地目录。
nimbus.host表示那一台机器是master机器,即nimbus。
storm.zookeeper.servers表示哪几台机器是zookeeper服务器。
storm.zookeeper.port表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当然你也可以配superevisor.slot.port,supervisor.slots.ports表示supervisor节点的槽数,就是最多能跑几个worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。
好了,storm集群就配置好了。
现在准备启动strom集群:
在主节点hostA上启动:
# bin/storm nimbus
# bin/storm supervisor
# bin/storm ui
在从节点上hostB hostC启动:
# bin/storm supervisor
然后就可以在{NimbusHost}:8080界面上看到storm ui的运行情况了。
如提交运行任务:
storm jar sendCloud-dataAnalysis.jar com.sohu.sendCloud.controller.SimpleTopology analysis_v1
至此,整个strom集群搭建完成。