Jstorm 官方搭建使用过程如连接https://github.com/alibaba/jstorm/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85 ,我整理了三个脚本:安装
Jstorm 集群
,安装 jstorm_web_ui 监控页面
,启动zookeeper、Jstorm集群进行测试
。
一、整体环境说明
三个脚本是测试环境搭建使用的,三台机器:192.168.9.92
、192.168.9.93
、192.168.9.94
如果在其他机器上面使用,必须修改脚本中相应有ip的地方 ,脚本在文章最后提供,在 zip
文件夹里面有完整的一份,使用的时候直接使用zip文件夹即可。
二、搭建过程
将 zip
包解压到测试环境 /home/work
目录下,解压后,执行目录中的三个脚本,顺序执行,即可安装完毕。
2.1 搭建脚本如下
2.1.1 Jstorm 集群安装过程 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
#!/bin/bash
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
source /etc/profile
yum install glibc.i686
echo 'finish pre install glibc.i686'
echo 'start unzip all files'
unzip jstorm.zip
echo 'finish unzip all files and start java setup'
cd jstorm_tar/
tar -zxf jdk-7u75-linux-i586.tar_0.gz -C /opt/
echo 'finish unzpip jdk-7u75-linux-i586.tar_0.gz && start java envirenment settting '
echo '## java configuration ' >> /etc/profile
echo 'JAVA_HOME=/opt/jdk1.7.0_75' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
echo 'export JAVA_HOME' >> /etc/profile
echo 'finish java envirement setting etc/profile'
. /etc/profile
which java
echo 'start setup zookeeper ……………………'
tar -zxf zookeeper-3.4.6.tar.gz -C /opt/
echo '# zookeeper configuration ' >> /etc/profile
echo 'export ZOOKEEPER_HOME=/opt/zookeeper-3.4.6' >> /etc/profile
echo 'export PATH=$ZOOKEEPER_HOME/bin:$PATH' >> /etc/profile
echo 'export CLASSPATH=$ZOOKEEPER_HOME/lib' >> /etc/profile
mkdir -p /home/work/jstorm/zookeeper_data
cp -f /opt/zookeeper-3.4.6/conf/zoo_sample.cfg /opt/zookeeper-3.4.6/conf/zoo_sample.cfg.bak
mv /opt/zookeeper-3.4.6/conf/zoo_sample.cfg /opt/zookeeper-3.4.6/conf/zoo.cfg
sed -i.bak 's/dataDir=\/tmp\/zookeeper/dataDir=\/home\/work\/jstorm\/zookeeper_data\//g' /opt/zookeeper-3.4.6/conf/zoo.cfg
echo '# zookeeper cluster mathines' >> /opt/zookeeper-3.4.6/conf/zoo.cfg
echo 'server.1=192.168.9.92:2888:3888' >> /opt/zookeeper-3.4.6/conf/zoo.cfg
echo 'server.2=192.168.9.93:2888:3888' >> /opt/zookeeper-3.4.6/conf/zoo.cfg
echo 'server.3=192.168.9.94:2888:3888' >> /opt/zookeeper-3.4.6/conf/zoo.cfg
. /etc/profile
echo 'finish setup zookeeper && start setup zeromq……'
yum install uuid-devel && yum install libuuid-devel
tar -zxf zeromq-2.1.7.tar.gz
cd zeromq-2.1.7
./configure && make && sudo make install && sudo ldconfig
cd ..
echo 'finish setup zeromq && start setup jzmq ……'
tar -zxf jzmq.tar && cd jzmq && ./autogen.sh && ./configure && make && sudo make install
cd ..
echo 'finish setup jzmq && start setup jstorm ……'
mkdir /home/work/jstorm/jstorm_data
unzip jstorm-0.9.6.2.zip -d /opt/
echo 'export JSTORM_HOME=/opt/jstorm-0.9.6.2' >> ~/.bashrc
echo 'export PATH=$PATH:$JSTORM_HOME/bin' >> ~/.bashrc
echo 'after configure bashrc for jstorm'
source ~/.bashrc
echo 'start configuration storm.yaml ……'
sed -i '/localhost"$/'d /opt/jstorm-0.9.6.2/conf/storm.yaml
sed -i /'storm.zookeeper.servers:/a\ - "192.168.9.94"' /opt/jstorm-0.9.6.2/conf/storm.yaml
sed -i /'storm.zookeeper.servers:/a\ - "192.168.9.93"' /opt/jstorm-0.9.6.2/conf/storm.yaml
sed -i /'storm.zookeeper.servers:/a\ - "192.168.9.92"' /opt/jstorm-0.9.6.2/conf/storm.yaml
sed -i 's/%JSTORM_HOME%\/data/\/home\/work\/jstorm\/jstorm_data/g' /opt/jstorm-0.9.6.2/conf/storm.yaml
sed -i /'storm.zookeeper.root/a\ nimbus.host: "192.168.9.92"' /opt/jstorm-0.9.6.2/conf/storm.yaml
echo 'congratilations ! you have successfully install jstorm on your machine ! Enjoy it !'
|
2.1.2 Jstorm_web_ui 监控搭建 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/bin/bash
echo 'start install apache-tomcat-7.0.61 '
mkdir ~/.jstorm
cp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm
tar -zxf apache-tomcat-7.0.61.tar.gz -C /opt/
cd /opt/apache-tomcat-7.0.61/webapps
cp $JSTORM_HOME/jstorm-ui-0.9.6.2.war ./
mv ROOT ROOT.old
ln -s jstorm-ui-0.9.6.2 ROOT
cd ../bin
./startup.sh
echo 'congratulaions ! you have install jstorm_ui! enjoy it !'
|
2.1.3 jstorm 集群启动 测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/bin/bash
cd /opt/zookeeper-3.4.6
sh bin/zkServer.sh start
echo 'zookeeper has started ! please see status :'
sh bin/zkServer.sh status
sh /opt/jstorm-0.9.6.2/bin/start.sh
|
监控页面如下(当然这只是官方例子,证明安装部署的ok):


2.2 安装注意
- java环境配置建议1.7以上
- 集群三台机器需要关闭防火墙,否则错误 “
java.net.NoRouteToHostException: 没有到主机的路由
”
1
2
3
4
|
[root@master shirdrn]
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
|
三、jstorm 常用命令
-
启动 nimbus “nohup jstorm nimbus & “ 查看$JSTORM_HOME/logs/nimbus.log 检查错误日志
- 启动 supervisor “nohup jstorm supervisor &” 查看$JSTORM_HOME/logs/supervisor.log 检查有无错误
- 停止 “sh $JSTORM_HOME/bin/stop.sh”
完整命令列表同storm一样,包括jar、kill、activate、deactivate、rebalance、repl、classpath、localconfvalue、remoteconfvalue、nimbus、supervisor、ui、drpc等,详细见:https://github.com/techdocscn/storm/blob/master/source/documentation/Command-line-client.md
四、zookeeper 常用命令
zk 集群搭建过程:
常用命令:
- 启动ZK服务: sh bin/zkServer.sh start
- 查看ZK服务状态: sh bin/zkServer.sh status
- 停止ZK服务: sh bin/zkServer.sh stop
- 重启ZK服务: sh bin/zkServer.sh restart
或者连接到服务器 bin/zkCli.sh -server 127.0.0.1:2181 输入help 查看操作帮助
其它使用命令详细参考: http://www.wangyuxiong.com/archives/51725
学习资料:
Jstorm中使用zookeeper主要用于Storm集群各节点的分布式协调工作,具体功能如下:
(1)存储客户端提供的topology任务信息,nimbus负责将任务分配信息写入Zookeeper,supervisor从Zookeeper上读取任务分配信息;
(2)存储supervisor和worker的心跳(包括它们的状态),使得nimbus可以监控整个集群的状态, 从而重启一些挂掉的worker;
(3)存储整个集群的所有状态信息和配置信息。
具体目录结构参考:storm在ZooKeeper中的目录结构
五、jstorm.zip 包和脚本下载
在 zip
文件夹里面有完整的上述三个骄傲本,使用的时候直接下载zip文件夹即可,下载地址 : 百度网盘 ,密码:btcq
六、storm 学习资料
大圆那些事 http://www.cnblogs.com/panfeng412/tag/Storm/
徐明明 https://xumingming.sinaapp.com/category/storm/
常用的一些基本命令 http://my.oschina.net/infiniteSpace/blog/339193
jstorm通用介绍 http://luoshi0801.iteye.com/blog/2168848
简单之美个人博客 http://shiyanjun.cn/archives/1019.html
jstorm深入分析:http://hexiaoqiao.sinaapp.com/2014/06/jstorm%E4%BB%8B%E7%BB%8D/
介绍nimbus :http://hexiaoqiao.sinaapp.com/2014/06/jstorm%E4%B9%8Bnimbus%E7%AE%80%E4%BB%8B/
介绍 superviser :http://hexiaoqiao.sinaapp.com/2014/07/jstorm%E4%B9%8Bsupervisor%E7%AE%80%E4%BB%8B/
storm 入门教程(量子恒道官方博客) http://blog.linezing.com/?cat=92
如果有什么问题,可以在右侧我的各种社交中找到我,或者在文章下面评论,我会及时答复各位