Storm集群中的一个拓扑频繁自动重启,日志输出如下:
|
|
从State: :disallowed
着手分析:
- State: :disallowed
这意味着Nimbus告诉Supervisor杀掉并重启Worker进程(Topology)。原因是Nimbus未能在设定的超时时间内从Supervisor和Worker进程获取到心跳数据,心跳的传递是通过
Zookeeper进行的,可能的原因是GC问题。
调整Storm的配置参数:
|
|
- State: timed-out
Worker进程未能在设定的时间内将心跳数据传递给Supervisor,因此Supervisor决定杀死并重启Worker进程(Topology)。
调整Storm的配置参数:
|
|
加大上述超时时间设置,解决问题。