Storm(二)CentOS7.5搭建Storm1.2.2集群
一.Storm的下载
官网下载地址:http://storm.apache.org/downloads.html
这里下载最新的版本storm1.2.2,进入之后选择一个镜像下载
二.Storm伪分布式安装
1.环境准备
JDK 1.7+ 验证: java -version
Python 2.6.6+ 验证:python -V
2.解压安装包
[admin@node21 software]$ tar zxvf apache-storm-1.2.2.tar.gz -C /opt/module/
3.创建logs文件目录
[admin@node21 software]$ cd /opt/module/apache-storm-1.2.2 [admin@node21 apache-storm-1.2.2]$ mkdir logs
4.启动storm
- 查看帮助
[admin@node21 apache-storm-1.2.2]$ ./bin/storm help
帮助如下
[admin@node21 storm-1.2.2]$ ./bin/storm help Commands: activate blobstore classpath deactivate dev-zookeeper drpc get-errors heartbeats help jar kill kill_workers list localconfvalue logviewer monitor nimbus node-health-check pacemaker rebalance remoteconfvalue repl set_log_level shell sql supervisor ui upload-credentials version Help: help help <command> Documentation for the storm client can be found at http://storm.apache.org/documentation/Command-line-client.html Configs can be overridden using one or more -c flags, e.g. "storm list -c nimbus.host=nimbus.mycompany.com"
- 启动Zookeeper
[admin@node21 apache-storm-1.2.2]$ ./bin/storm dev-zookeeper >> ./logs/zk.out 2>&1 &
- 启动Nimbus
[admin@node21 apache-storm-1.2.2]$ ./bin/storm nimbus >> ./logs/nimbus.out 2>&1 &
- 启动Storm UI
[admin@node21 apache-storm-1.2.2]$ ./bin/storm ui >> ./logs/ui.out 2>&1 &
- 启动Supervisor
[admin@node21 apache-storm-1.2.2]$ ./bin/storm supervisor >> ./logs/supervisor.out 2>&1 &
- 启动Logviewer
[admin@node21 apache-storm-1.2.2]$ ./bin/storm logviewer ./logs/logviewer.out 2>&1 &
5.查看进程
6.WebUI查看
WebUI查看地址:http://node21:8080/
三.Storm分布式集群安装
官网集群配置文档:http://storm.apache.org/releases/1.2.2/Setting-up-a-Storm-cluster.html
1.集群部署
IP | 节点名称 | Jdk,Python | Zookeeper | Nimbus | Supervisor |
192.168.100.21 | node21 | Jdk,Python | Zookeeper | Nimbus | |
192.168.100.22 | node22 | Jdk,Python | Zookeeper | Supervisor | |
192.168.100.23 | node23 | Jdk,Python | Zookeeper | Supervisor |
Zookeeper集群安装参考: CentOS7.5搭建Zookeeper3.4.12集群与命令行操作
2.安装环境解压安装包
[admin@node21 software]$ tar zxvf apache-storm-1.2.2.tar.gz -C /opt/module/ [admin@node21 software]$ cd /opt/module/ [admin@node21 module]$ mv apache-storm-1.2.2/ storm-1.2.2 [admin@node21 module]$ cd storm-1.2.2 [admin@node21 storm-1.2.2]$ mkdir logs
3.修改yaml配置文件
[admin@node21 storm-1.2.2]$ vi conf/storm.yaml
1)storm.zookeeper.servers:这是Storm集群的Zookeeper集群中的主机列表。
2)storm.local.dir:Nimbus和Supervisor守护进程需要本地磁盘上的目录来存储少量状态(如jar,confs和类似的东西)。您应该在每台计算机上创建该目录,为其提供适当的权限,然后使用此配置填写目录位置。
3)nimbus.seeds:工作节点需要知道哪些机器是主机的候选者才能下载拓扑罐和confs。
4)supervisor.slots.ports:对于每个工作者计算机,您可以使用此配置配置在该计算机上运行的工作程序数。每个工作人员使用单个端口接收消息,此设置定义哪些端口可以使用。如果您在此处定义了五个端口,那么Storm将分配最多五个工作人员在此计算机上运行。如果定义三个端口,Storm最多只能运行三个端口。默认情况下,此设置配置为在端口6700,6701,6702和6703上运行4个工作程序。
4.分发Storm到其他节点
[admin@node21 module]$ scp -r storm-1.2.2/ node22:`pwd` [admin@node21 module]$ scp -r storm-1.2.2/ node23:`pwd`
5.配置环境变量
[admin@node21 module]$ sudo vi /etc/profile export STORM_HOME=/opt/module/storm-1.2.2 export PATH=$PATH:$STORM_HOME/bin [admin@node21 module]$ source /etc/profile
6.启动集群
- 启动zookeeper集群,各个节点执行
$ zkServer.sh start
- 启动storm集群
node21上启动Nimbus,启动webUI
[admin@node21 storm-1.2.2]$ ./bin/storm nimbus >> ./logs/nimbus.out 2>&1 & [admin@node21 storm-1.2.2]$ ./bin/storm ui >> ./logs/ui.out 2>&1 &
node22和node23启动supervisor,按照配置,每启动一个supervisor就有了4个slots
[admin@node22 storm-1.2.2]$ ./bin/storm supervisor >> ./logs/supervisor.out 2>&1 & [admin@node23 storm-1.2.2]$ ./bin/storm supervisor >> ./logs/supervisor.out 2>&1 &
7.查看进程
8.查看WebUI
WebUI查看地址:http://node21:8080/
9.编写storm服务脚本
node21上 start-stormCluster.sh
#!/bin/bash echo "******************** 正在启动nimbus服务 *******************" ssh admin@node21 '/opt/module/storm-1.2.2/bin/storm nimbus >> /opt/module/storm-1.2.2/logs/nimbus.out 2>&1 &' echo "********************* 正在启动webUi服务 ******************" ssh admin@node21 '/opt/module/storm-1.2.2/bin/storm ui >> /opt/module/storm-1.2.2/logs/ui.out 2>&1 &' echo "******************** 正在启动supervisor服务 *******************" ssh admin@node22 '/opt/module/storm-1.2.2/bin/storm supervisor >> /opt/module/storm-1.2.2/logs/supervisor.out 2>&1 &' ssh admin@node23 '/opt/module/storm-1.2.2/bin/storm supervisor >> /opt/module/storm-1.2.2/logs/supervisor.out 2>&1 &' echo "****************** 服务启动成功 *******************"*
给脚本赋权限 :chmod +x 脚本名称
四.故障排除
参考文档:http://storm.apache.org/releases/1.2.2/Troubleshooting.html