storm系列1:storm集群搭建

  最近在研究流式特征处理,所以搭建了storm集群环境,把过程发出来,以备后续查看。

安装包准备

  • jdk: oracle官网下载的jdk1.8.0_181版本

  • zookeeper: zookeeper下载的zookeeper-3.4.12版本

  • storm: storm下载的apache-storm-1.2.2版本

配置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14

PATH=$PATH:$HOME/.local/bin:$HOME/bin
JAVA_HOME=/home/user/jdk1.8.0_181
JRE_HOME=$JAVA_HOME/jre
STORM_HOME=/home/user/apache-storm-1.2.2
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ZOOKEEPER_HOME=/home/user/zookeeper-3.4.12
PATH=$PATH:$JAVA_HOME/bin:$STORM_HOME/bin:$ZOOKEEPER_HOME/bin
export PATH
export JAVA_HOME
export JRE_HOME
export CLASSPATH
export ZOOKEEPER_HOME
export STORM_HOME

配置zookeeper

修改配置文件

  zookeeper需要修改ZOOKEEPER_HOME/conf/zoo.cfg文件,加入下列信息

1
2
3
4
5
6
7
8
9

tickTime=2000
dataDir=/var/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=m7-pce-hdp01:2888:3888
server.2=m7-pce-hdp02:2888:3888
server.3=m7-pce-hdp03:2888:3888

其中dataDir是zookeeper的数据文件目录;server.id=host:port:port,其中id是每个节点的编号,这个编号需要在dataDir目录下创建myid文件中写入,m7-pce-hdp01~m7-pce-hdp03是hostname,第一个port用于连接leader的端口,第二个port用于连接leader的选举端口。

启动zookeeper

执行ZOOKEEPER_HOME/bin/zkServer.sh启动zookeeper,并执行zkServer.sh status,查看是否启动成功

配置storm

  storm配置文件在STORM_HOME/conf/storm.yaml,需要配置一下几个信息

配置zookeeper列表

1
2
3
4
5

storm.zookeeper.servers:
- "m7-pce-hdp01"
- "m7-pce-hdp02"
- "m7-pce-hdp03"

配置nimbus

1
2

nimbus.seeds: ["m7-pce-hdp01"]

配置storm本地dir

1
2

storm.local.dir: "/home/user/apache-storm-1.2.2/workdir"

配置supervisor.slots.ports

supervisor.slots.ports是指每个机器可以启动多少个worker,一个端口号代表一个worker

1
2
3
4
5
6

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

启动Storm集群

启动nimbus集群

1
2

nohup storm nimbus &

  用jps查看后台线程会发现多了nimbus(先显示config value,配置正确后变成nimbus)

启动supervisor

1
2

nohup storm supervisor &

  用jps查看后台线程出现Supervisor

启动监控ui

1
2

nohup storm ui &

  用jps查看后台线程出现core

在浏览器中输入“http://m7-pce-hdp01:8080/index.html”即可看到

提交任务

  集群配置完,我们开始向集群提交任务。

配置本地storm

  需要在storm.yaml文件中配置nimbus

1
2

nimbus.host: "m7-pce-hdp01"

准备程序

  在STORM_HOME/examples下有很多示例代码,我们选用storm-starter进行测试。这里需要用maven进行打包,执行mvn package就行。然后我们就能在target文件夹下找到storm-starter-1.2.2.jar,一会就提交它。

提交任务

1
2

storm jar storm-starter-1.2.2.jar storm/starter/StatefulTopology wordcountexample

然后输入storm list

1
2
3
4
5

2703 [main] INFO o.a.s.u.NimbusClient - Found leader nimbus : m7-pce-hdp01:6627
Topology_name Status Num_tasks Num_workers Uptime_secs
-------------------------------------------------------------------
wordcountexample ACTIVE 7 1 183702

也可以进入ui页面进行查看运行状态。storm任务运行完也不会停止,需要手动kill。

总结

  以上就是storm集群的搭建过程,很简单,基本上没遇到什么问题。

-------------本文结束感谢您的阅读-------------

本文标题:storm系列1:storm集群搭建

文章作者:小建儿

发布时间:2018年08月16日 - 17:08

最后更新:2018年08月16日 - 18:08

原始链接:http://yajian.github.io/storm系列1-storm集群搭建/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。