Storm 快速安装及部署示例

时间:2022-06-21 06:24:49

本文提供最简单快速的安装示例:

Storm依赖zookeeper和Python环境,具体安装步骤不再列出,只简单介绍Storm的安装过程。

1,Linux环境下载storm(版本0.10.0)

wget http://mirrors.cnnic.cn/apache/storm/apache-storm-0.10.0/apache-storm-0.10.0.tar.gz

2,解压

tar -zxvf apache-storm-0.10.0.tar.gz

3,编辑配置文件

vi conf/storm.yaml

//这是一个为Storm集群服务的Zookeeper集群的主机列表,它的配置应该类似于:
storm.zookeeper.servers:
- “zookeeperIp01”
- “zookeeperIp02”
- “zookeeperIp03”

//nimbus 节点
nimbus.host: “nimbusIp”

//supervisor 端口
对于每个工作节点,可以通过该配置项来设置该节点上运行多少个worker。每个worker使用一个端口接收消息,此设置定义为使用哪些端口是打开的。如果在这里定义5个端口,然后Storm将分配5个Worker在这台主机上运行。如果定义3个端口,Storm只会分配3个worker。此设置默认为在端口6700、6701、6702和6703上配置运行4个worker,如下:
supervisor.slots.ports:
-6700
-6701
-6702
-6703

本示例是 nimbus和supervisor节点部署在同一台机器上。
关于storm的属性配置,开头都要保留一个空格,不要用tab键。

此配置文件在各个节点上都是相同的,具体那个服务节点承担什么角色要看节点上启动的服务是什么,如下命令

4,启动服务

bin/storm nimbus >/dev/null 2>&1 &
bin/storm supervisor >/dev/null 2>&1 &
bin/storm ui >/dev/null 2>&1 &

其中 storm ui 启动后,可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。而且storm ui必须和storm nimbus部署在同一台机器上,否则UI无法正常工作。

5,向集群中提交拓扑

可以直接运行storm目录下的实例程序来看一下效果:
bin/storm jar ../examples/storm-starter/storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology |grep ‘Thread-[0-9]*-count’
打印出的日志就是每个bolt执行后的结果,这是相当于本地运行,实际上并没有想集群中提交拓扑,真正提交集群拓扑是这样的

bin/storm jar ../examples/storm-starter/storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology word-count
这时会向集群中提交一个名字为 word-count的拓扑,这个拓扑已经提交,就会在后台一直运行,除非手动kill掉这个拓扑,此时,可以查看 log目录下的日志:
tail -f word-count-XX-XXXXXX-worker-XXX.log
此时发现这个拓扑会在后台一直运行进行单词的个数统计。