效果:
节点名 运行的进程
-------------------------------------------------------------------------------------------------------------------------------------
LENOVO01 nimbus, ui(在浏览器上查看管理的界面,可以查看,跟踪,修改storm节点中各个进程的状态)
LENOVO02 nimbus, supervisor,logviewer
LENOVO03 supervisor,logviewer
安装并zookeeper集群(要保证集群各个节点的时间保持一致,如: date -s “20180108 17:28:26”)
LENOVO01
LENOVO02
LENOVO03
解压重命名apache-storm-1.0.2.tar.gz
opt]# tar -zxf soft/apache-storm-1.0.2.tar.gz
opt]# mv apache-storm-1.0.2 storm
配置环境变量,并source生效
export STORM_HOME=/opt/storm
export PATH = $PATH:$STORM_HOME/bin
修改文件conf/storm-env.sh
export JAVA_HOME=/opt/jdk
export STORM_CONF_DIR="/opt/storm/conf"
修改文件conf/storm.yaml
使用两个空格作为一级缩进是yaml的约定,不能使用制表符(Tab)来代替
以“:”为结束符的字符串,代表了一个键名,“:”后面则是键值。“:”和键值之间必须有至少一个空格。
列表的元素前面的“-”必不可少,并且要跟随至少一个空格。也可以使用- [value1, value2, value3] 表示列表
storm.zookeeper.servers:
- "LENOVO01"
- "LENOVO02"
- "LENOVO03"
##配置集群中的nimbus的候选主机的主机名,主要避免单点问题
nimbus.seeds: ["LENOVO01", "LENOVO02"]
##配置storm在运行过程中supervisor从nimbus下载的各个topology对应的jar,配置型等等,做临时存储
storm.local.dir: "/opt/storm/storm-local"
##一台supervisor机器上面能够最多运行几个worker进程
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
配置完成之后向其他机器分发
scp -r /opt/storm root@LENOVO02:/opt
scp -r /opt/storm root@LENOVO03:/opt
且,将配置好的环境变量拷贝到各个从节点
启动:
前提:启动zookeeper集群
LENOVO01:
nohup /opt/storm/bin/storm nimbus > /dev/null 2>&1 &
nohup /opt/storm/bin/storm ui > /dev/null 2>&1 &
LENOVO02:
nohup /opt/storm/bin/storm nimbus > /dev/null 2>&1 &
nohup /opt/storm/bin/storm supervisor >/dev/null 2>&1 &
nohup /opt/storm/bin/storm logviewer > /dev/null 2>&1 &
LENOVO03:
nohup /opt/storm/bin/storm supervisor >/dev/null 2>&1 &
nohup /opt/storm/bin/storm logviewer > /dev/null 2>&1 &
注意:
> /dev/null ,含义是:将进程运行过程中产生的一些日志信息输出到Linux回收站中,并自动清除。(形象:日志信息已经输出到“黑洞”)
几个基本符号及其含义:
/dev/null 表示空设备文件
0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误
nohup:以后台进程的方式运行,关闭当前的终端,不影响进程的状态。
验证:
在浏览器中数据:
访问启动ui--->nohup /opt/storm/bin/storm ui > /dev/null 2>&1这台机器
http://LENOVO01:8080