一、问题描述:
对于已经搭建好的Storm集群,启动后上面已经运行很多topology,此时想要修改storm的集群配置参数(storm.yarm)后重新启动集群,虽然storm中nimbus和web-ui进程能够正常启动,但是实际后台ui的日志总是报错,而且尝试在localhost:8080打开storm ui的时候也一直刷新不出来。
二、问题分析与解决办法:
storm 的web-ui一直刷新而打不开,并且查看使用storm ui
命令启动时候报错链接nimbus失败,分析是nimbus启动失败或者异常,重点排查mimbus后,查看日志发现原始storm集群中的各个topology启动恢复异常;
分析原因:运行中的集群参数一旦更改,重新启动集群之后要重新相应的清除zookeeper中的storm集群元信息
zkCli.sh -server locahost:2181
#登陆之后zookeeper后,执行如下,清除在zookeeper中的storm元信息
rmr /storm
,然后重新启动storm集群。打开storm ui正常!!!
发散思维:
面对该问题时候的解决步骤:
- 1.定位问题:
查看该问题在在日志log中的显示启动信息,任何错误的异常linux都会将其打印输出到日志中; - 2.分析问题
针对该问题,尝试独立解决(重新审视自身多出的修改导致的错误,此处是指storm.yarm配置文件)。 - 3.借力前人
如果仍然难以解决,尝试在所搜引擎中查看前人有没有类似的错误; - 4.升级思考
(1)横向对别同类类似系统有没有相似的问题,比如Flink和或者Kafka等,增加类比和知识延伸思考!
(2)归根结底,之所以出现该问题,是因为对storm的原理架构需要加深理解
比如storm ui中的信息采集、实时更新集群状态的信息是从哪里来的,zookeeper或者numbus?只要深究就会发现该类问题的统一解决方案!!