领域修炼之路

Storm拓扑自动重启

Storm集群中的一个拓扑频繁自动重启,日志输出如下:

1
2017-02-10 11:50:12.515 o.a.s.d.supervisor [INFO] Shutting down and clearing state for id 497b7c8c-11a1-4ffa-b35d-e4f475c71408. Current supervisor time: 1486698612. State: :disallowed, Heartbeat: {:time-secs 1486698611, :storm-id "storm-accountbook-topology-583-1486698471", :executors [[-1 -1]], :port 6706}

State: :disallowed着手分析:

  • State: :disallowed

这意味着Nimbus告诉Supervisor杀掉并重启Worker进程(Topology)。原因是Nimbus未能在设定的超时时间内从Supervisor和Worker进程获取到心跳数据,心跳的传递是通过
Zookeeper进行的,可能的原因是GC问题。

调整Storm的配置参数:

1
2
nimbus.task.timeout.secs: 30
nimbus.supervisor.timeout.secs: 60
  • State: timed-out

Worker进程未能在设定的时间内将心跳数据传递给Supervisor,因此Supervisor决定杀死并重启Worker进程(Topology)。

调整Storm的配置参数:

1
supervisor.worker.timeout.secs: 30

加大上述超时时间设置,解决问题。

chrisrc wechat
更多信息请订阅我的微信订阅号