下载解压
下载安装包,之后进行解压。官方下载地址:http://storm.apache.org/downloads.html
wget https://mirror.bit.edu.cn/apache/storm/apache-storm-1.2.3/apache-storm-1.2.3.tar.gztar -zxvf apache-storm-1.2.3.tar.gz -C /opt/module/storm-1.2.3
配置环境变量
# vim /etc/profile
添加环境变量:
export STORM_HOME=/opt/module/storm-1.2.3export PATH=$STORM_HOME/bin:$PATH
使得配置的环境变量生效:
# source /etc/profile
集群配置
修改 ${STORM_HOME}/conf/storm.yaml 文件,配置如下:
# Zookeeper集群的主机列表storm.zookeeper.servers:- "node01"- "node02"- "node03"- "node04"- "node05"# Nimbus的节点列表nimbus.seeds: ["node01","node02"]# Nimbus和Supervisor需要使用本地磁盘上来存储少量状态(如jar包,配置文件等)storm.local.dir: "/data/storm/wkdir"# workers进程的端口,每个worker进程会使用一个端口来接收消息supervisor.slots.ports:- 6700- 6701- 6702- 6703# spark占用8080/8081端口ui.port: 8082storm.health.check.dir: "/data/storm/healthchecks"
supervisor.slots.ports 参数用来配置 workers 进程接收消息的端口,默认每个 supervisor 节点上会启动 4 个 worker,当然你也可以按照自己的需要和服务器性能进行设置,假设只想启动 2 个 worker 的话,此处配置 2 个端口即可。
安装包分发
将 Storm 的安装包分发到其他服务器,分发后建议在这两台服务器上也配置一下 Storm 的环境变量。
scp -r /usr/app/apache-storm-1.2.2/ root@hadoop002:/usr/app/scp -r /usr/app/apache-storm-1.2.2/ root@hadoop003:/usr/app/
启动集群
启动ZooKeeper集群
分别到三台服务器上启动 ZooKeeper 服务:
zkServer.sh start
启动Storm集群
因为要启动多个进程,所以统一采用后台进程的方式启动。进入到 ${STORM_HOME}/bin 目录下,执行下面的命令:
node01 & node02 :
node01和node02作为nimbus节点
# 启动主节点 nimbusnohup sh storm nimbus &# 启动从节点 supervisornohup sh storm supervisor &# 启动UI界面 uinohup sh storm ui &# 启动日志查看服务 logviewernohup sh storm logviewer &
node03,node04和node05:
hadoop003 上只需要启动 supervisor 服务和 logviewer 服务:
# 启动从节点 supervisornohup sh storm supervisor &# 启动日志查看服务 logviewernohup sh storm logviewer &
查看集群
使用 jps 查看进程,三台服务器的进程应该分别如下:
访问 node01 或 node02 的 8082 端口,界面如下。可以看到有一主一备 2 个 Nimbus 和 3 个 Supervisor,并且每个 Supervisor 有4个 slots,即四个可用的 worker 进程,此时代表集群已经搭建成功。
高可用验证
这里手动模拟主 Nimbus 异常的情况,在 node01 上使用 kill 命令杀死 Nimbus 的线程,此时可以看到 hadoop001 上的 Nimbus 已经处于 offline 状态,而 node02 上的 Nimbus 则成为新的 Leader。
