要搭建storm集群,需要准备一下软件。
1、JDK1.7
2、Zookeeper3.4.5
3、Storm0.9.2 incubating
本文准备了两台机器,来搭建zookeeper。主机名分别是
static.tianshouzhi.com
一、JDK安装
略...
二、Zookeeper的安装
在实际情况下,我们的zookeeper都会以集群的方式进行安装,由于在本文中,我们主要学习的是Storm,没有必要花过多的时间在zookeeper上,因此这里,我只在static.tianshouzhi.com这台机器上安装一份Zookeeper。以免喧宾夺主。
1、下载解压、安装:
cd /usr/local
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
tar -xvzf zookeeper-3.4.5.tar.gz
在/etc/profile 里配置:
ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.5
PATH=$PATH:$ZOOKEEPER_HOME/bin
最后:
source /etc/profile
2、启动和停止
启动
zkServer.sh start
停止
zkServer.sh stop
三、Storm集群安装:
在static.tianshouzhi.com和www.huhuamin.com两台机器中,每一台都进行一下步骤
下载解压
wget https://github.com/apache/storm/archive/v0.9.2-incubating.zip
unzip v0.9.2-incubating.zip -d /usr/local/
修改配置文件conf/storm.yaml,这会覆盖 defaults.yaml中的重复内容。要注意的是,defaults.yaml在conf目录下并不存在,而是打包在lib/storm-core-XXX.jar中。
默认配置项的内容通过以下链接可以看到:
https://github.com/apache/storm/blob/master/conf/defaults.yaml
修改配置项
1)storm.zookeeper.servers: 因为Storm所有的信息都是存储在Zookeeper中的,所以要指定Zookeeper服务器的地址
storm.zookeeper.servers:
- "static.tianshouzhi.com"
2)storm.local.dir:
Nimbus和 Supervisor守护进程需要一个目录来存储一些状态信息,例如( jars, confs, and things like that )
storm.local.dir: "/data/storm"
3)nimbus.host:
worker需要知道那一台机器是master,从而可以下载 topology jars 和confs
nimbus.host: "static.tianshouzhi.com"
4)supervisor.slots.ports
对于每一个supervisor机器,我们可以通过这项来配置运行多少worker在这台机器上。每一个worker使用一个单独的port来接受消息,这个端口同样定义了那些端口是开放使用的。如果你在这里定义了5个端口,就意味着这个supervisor节点上最多可以运行5个worker。如果定义3个端口,则意味着最多可以运行3个worker。在默认情况下(即配置在defaults.yaml中),会有有四个workers运行在
6700, 6701, 6702, and 6703端口。例如:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
要注意的是:supervisor并不会在启动时就立即启动这四个worker。而是接受到分配的任务时,才会启动,具体启动几个worker也要根据我们Topology在这个supervisor需要几个worker来确定。如果指定Topology只会由一个worker执行,那么supervisor就启动一个worker,并不会启动所有。
四、集群运行
启动storm集群
主节点:执行以下命令
nohup $STORM_HOME/bin/storm nimbus &
#从节点,执行一下命令
nohup $STORM_HOME/bin/storm supervisor &