Apache Storm Worker Process死了

时间:2014-10-29 04:31:10

标签: apache-storm apache-zookeeper

我在5节点集群中安装了storm-0.9.2。我有一个简单的拓扑结构,带有1个喷口和不同数量的螺栓(4,9,22,31)。对于我配置的每个配置(#bolts + 1)工作人员。因此,对于4个螺栓,我有5个工人,22个螺栓和23个工人等。

我在zookeeper.out日志文件中观察到工作日志文件中的失败工作进程以及相应的EndOfStream异常。当我得到一个干净的测试运行时,每个螺栓处理的元组数量均匀分布在每个工作者上。在非干净的测试运行中,失败的工作者尝试重新连接,但是由于元组的数量是有限的,因此没有更多的元组要处理。

工人流程死亡的可能原因是什么?

摘自zookeeper.out日志文件:

*2014-10-27 17:40:33,198 [myid:] - WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@357] - caught end of stream exception
EndOfStreamException: Unable to read additional data from client sessionid 0x1495431347c001e, likely client has closed socket
        at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
        at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
        at java.lang.Thread.run(Thread.java:744)
2014-10-27 17:40:33,201 [myid:] - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1007] - Closed socket connection for client /192.168.0.1:45693 which had sessionid 0x1495431347c001e*

群集环境:

  • 风暴0.9.2
  • Zookeeper 3.4.6
  • Ubuntu 13.10

1 个答案:

答案 0 :(得分:0)

对我来说,看起来你的Zookeeper存在问题。有几个想法:

  • 您的Zookeeper超时配置太小。
  • 您的Zookeeper实例没有足够的子(奴隶)来处理您的工作量。

要进行诊断,请先增加Zookeeper实例的默认超时时间。如果它不起作用,请尝试扩展Zookeeper群集。

您可以整合Zookeeper文档。如果能解决您的问题,请告诉我们。