Jayson

老牛亦解韶光贵,不等扬鞭自奋蹄。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Storm集群依赖Zookeeper, 所以先搭建zookeeper集群, zookeeper集群搭建: http://www.cnblogs.com/CoolJayson/p/7764531.html

以下开始搭建Storm集群:

1.将apache-storm-0.9.3.tar.gz拷贝到/usr/local/src/目录下, 并解压

2.进入到./conf/目录下, 修改storm.yaml文件, 增加如下配置:

其中storm.zookeeper.servers配置了zookeeper集群; nimbus.host配置了主节点(master node), supervisor.slots.ports配置了从节点(woker node)的端口号.

3.将apache-storm-0.9.3文件拷贝到每个从节点.

 

4.先启动zookeeper集群(要在每个节点都将zookeeper启动, 如何启动见zookeeper集群搭建)

5.在master节点写脚本将storm集群启动(否则要在每个节点分别启动storm)

启动storm集群脚本: start-storm.sh

 1 #!/bin/bash
 2 
 3 #脚本使用默认是集群配置好免密码登录
 4 #让你配置的环境生效,我的是~/.bashrc 根据个人配置有的是/etc/profile
 5 source ~/.bashrc
 6 #storm的安装路径
 7 STORM_HOME=/usr/local/src/apache-storm-0.9.3
 8 
 9 #先在主节点上启动nimbus和ui进程
10 echo "start nimbus, ui and logviewer in master"
11 $STORM_HOME/bin/storm nimbus > /dev/null 2>&1 &
12 $STORM_HOME/bin/storm ui > /dev/null 2>&1 &
13 $STORM_HOME/bin/storm logviewer > /dev/null 2>&1 &
14 
15 #在从节点上启动logviewer和supervisor
16 # 注意在storm安装路径conf文件夹下默认是没有supervisors这个文件 ,这里是为了便于管理自己创建(名字自己定义)
17 # 在supervisors文件里放的是 supervisor的hostname 有几个supervisor节点 就写几个 一个主机名占一行
18 
19 #把supervisors文件里的主机名赋值给SUPERSIORS
20 SUPERVISORS=$(cat $STORM_HOME/conf/supervisors)
21 
22 # 循环遍历SUPERVISORS
23 for supervisor in $SUPERVISORS
24 do
25         echo "start supervisor and logviewer in $supervisor"
26         #先ssh 登录到supervisor节点 然后让配置的环境生效,在执行需要启动的进程 nohup 是后台运行 >/dev/null 2>&1 & 
27 ssh $supervisor "source ~/.bashrc && nohup $STORM_HOME/bin/storm supervisor > /dev/null 2>&1 &" > /dev/null 2>&1 & 28 ssh $supervisor "source ~/.bashrc && nohup $STORM_HOME/bin/storm logviewer > /dev/null 2>&1 &" > /dev/null 2>&1 & 29 done

关闭storm集群脚本: stop-storm.sh

 1 #!/bin/bash
 2 
 3 source ~/.bashrc
 4 # storm 安装路径
 5 STORM_HOME=/usr/local/src/apache-storm-0.9.3
 6 
 7 #先在主节点上停止nimbus,ui和logviewer进程
 8 echo "stop nimbus and logviewer in master"
 9 # 注意最外面的引号是反引号
10 kill -9 `ps -ef | grep daemon.nimbus | awk '{print $2}' | head -n 1`
11 kill -9 `ps -ef | grep ui.core | awk '{print $2}' | head -n 1`
12 kill -9 `ps -ef | grep daemon.logviewer | awk '{print $2}' | head -n 1`
13 
14 #在从节点上停止logviewer和supervisor
15 SUPERVISORS=$(cat $STORM_HOME/conf/supervisors)
16 for supervisor in $SUPERVISORS
17 do
18         echo "stop supervisor and logviewer in $supervisor"
19         ssh $supervisor kill -9 `ssh $supervisor ps -ef | grep daemon.supervisor | awk '{print $2}' | head -n 1`
20         ssh $supervisor kill -9 `ssh $supervisor ps -ef | grep daemon.logviewer | awk '{print $2}' | head -n 1`
21 done

conf目录下supervisors内容:

6.启动后每个节点的进程如下:

    

7.在浏览器打开Storm UI地址: http://master:8080/index.html, 可以看到storm集群的信息

 

//==========正式内容结束, 以下为补充内容================

如果分别在主节点和从节点开启和关闭脚本的话, 脚本内容如下: 

 

 

posted on 2017-11-30 22:55  jaysoncho  阅读(225)  评论(0编辑  收藏  举报