集群规划
角色 | IP | hostname |
---|---|---|
nimbus | 192.168.100.101 | dda |
supervisor | 192.168.100.102 | ddb |
supervisor | 192.168.100.106 | ddg |
drpc.servers | 192.168.100.106 | ddg |
Nimbus可以配置多台,实现HA,这里暂时就配置一台
需要对外开放的端口:
- 6627: Nimbus 默认端口
- 3772: DRPC 默认端口
- 8080: Storm UI Web端口
配置文件
建议: Nimbus、DRPC的端口直接用默认的,无需更改
Nimbus
wget http://mirrors.shuosc.org/apache/storm/apache-storm-1.1.1/apache-storm-1.1.1.tar.gz
#配置Zookeeper
storm.zookeeper.servers:
- "192.168.100.105"
- "192.168.100.104"
- "192.168.100.103"
#配置数据存储路径
storm.local.dir: "/root/apache-storm-1.1.0/data"
#配置Nimbus master,如果有多个,可以填写,用逗号隔开
nimbus.seeds: ["192.168.100.101"]
## 配置DRPC服务
drpc.servers:
- "192.168.100.106"
Supervisor
storm.zookeeper.servers:
- "192.168.100.105"
- "192.168.100.104"
- "192.168.100.103"
storm.local.dir: "/root/apache-storm-1.1.0/data"
nimbus.seeds: ["192.168.100.106"]
#配置Zookeeper
storm.zookeeper.servers:
- "192.168.100.105"
- "192.168.100.104"
- "192.168.100.103"
#配置数据存储路径
storm.local.dir: "/root/apache-storm-1.1.0/data"
#配置Nimbus master,如果有多个,可以填写,用逗号隔开
nimbus.seeds: ["dda","ddb"]
#缺省配置 Monitoring Health of Supervisors
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000
#缺省配置,如果有4个以上的worker,需要增加端口,因为一个端口一个worker
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
命令
bin/storm nimbus >/dev/null 2>&1 &
bin/storm supervisor >/dev/null 2>&1 &
bin/storm ui >/dev/null 2>&1 &
#关闭nimbus相关进程:
kill `ps aux | egrep ‘(daemon\.nimbus)|(storm\.ui\.core)‘ | fgrep -v egrep | awk ‘{print $2}‘`
#干掉supervisor上的所有storm进程:
kill `ps aux | fgrep storm | fgrep -v ‘fgrep‘ | awk ‘{print $2}‘`
出现问题及解决方案
- supervisor出现hostname为localhost(log)的情况,原因是106未安装hadoop,没有hadoop运行环境与配置.
- nimbus出现 重复机器:即2条记录(一个活着、一个未活着),一条为hostname,一条数据为ip,与服务注册出现情况类似(服务发现想显示ip,显示不了),这里其实在nimbus.seeds用别名即可。nimbus.seeds: ["dda","ddb"]
自动化配置集群
当集群规模比较大时,集群的管理是一个复杂的问题。Puppet提供了对Storm 集群进行管理的一套脚本。需要的同学可以自行研究下,github地址:https://github.com/miguno/puppet-storm