机器重启后,重启storm的supervisor程序报以下错误:
解决方式:删除storm.yaml配置文件中的storm.local.dir参数配置的目录下的Supervisor和workers两个目录,然后重新启动。
在其中一台机器按以上方式解决后,发现另外一台机器又报了相似的错误,一致启动失败,错误如下:
从错误日志了可以看出,是由于存在workers目录存在导致的,目录下放的是worker的心跳更新的相关信息。正常来说,supervisor crash之后,worker应该被kill掉,在别的节点上启动。但是发现在supervisor crash之后,一直有worker进程不断再更新心跳包,ps查询相关进程后发现,一部分worker是以往拓扑残留的僵尸进程,一部分是正在ui上可以查看到的worker(这个很奇怪,supervisor都挂了,可是ui上还可以看到该机器上的worker,显示消费正常,不是很理解,后续再研究。。)。
我的解决方式:就是将该机器上的worker进程kill掉,再重新启动supervisor,可以正常运转。