接续前一章节….
三、Storm集群使用与维护
3.1 常见问题解决办法
在storm启动过程中,当storm报错:Could not find leader nimbus from seed hosts [“localhost”]
该问题往往是由于storm集群断电后再重启引起的问题,解决方式:
删除zookeeper下的storm节点元数据,重启zookeeper,重新发布topology到storm集群即可。具体操作如下:
(1)在storm的任意一个节点输入命令:
zkCli.sh //表示进入zookeeper客户端
(2)然后输入命令
ls / //表示显示zookeeper监控的所有集群名称
会显示 [zookeeper, storm]
(3)执行命令删除:
rmr /storm
(4)最后按照“向Storm集群提交任务”方式启动storm,然后发布topology程序到storm集群即可;
3.2 向Storm集群提交任务
启动和停止任务
1)启动Storm Topology
storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3
其中,allmycode.jar是包含Topology实现代码的jar包,org.me.MyTopology的main方法是Topology的入口,arg1、arg2和arg3为org.me.MyTopology执行时需要传入的参数。
例如:storm jar Storm_DataPreprocess.jar com.prepare.topology
提示:提交数据预处理程序到storm集群,最后一个参数是指当前程序包的主类路径。
2)停止Storm Topology:
storm kill {toponame}
其中,{toponame}为Topology提交到Storm集群时指定的Topology任务名称。
例如 storm kill Storm_DataPreprocess
其中,最后一个参数是指该Topology的名称;
3.3 Storm UI 监控
1.查看storm的集群运行情况
输入网址:http://192.168.10.100:8080/index.html
UI界面关键参数说明:
(1)该storm ui网址可以监控到集群中各个节点的状态;
(2)从Supervisor Summary中查看集群中所有在运行的节点状态,节点中的host表示已经正在运行的节点名称、运行的时间等;
- Host - supervisor的主机名
- Uptime - supervisor在集群中注册的时间
- Slots - 分配的worker数量(通常是平均分配)
- Used slots - 使用的slot数量,(不为零时候表示还可以部署的程序任务数量)
(3) Topology Summary可以查看所有已经提交的Topology任务运行情况,点击第一列的name列进入可以查看具体的任务运行状态;