Apache storm Apache Storm bolts在恢复后停止接收元组

Apache storm Apache Storm bolts在恢复后停止接收元组,apache-storm,Apache Storm,拓扑结构由一个喷嘴和几个螺栓(B1、B2、B3)组成。 拓扑方案如下所示:S->B1->B2->B3。 2个辅助进程用于运行拓扑。 偶尔损坏的数据会进入拓扑结构,导致螺栓B1崩溃。Storm恢复受影响的工作进程并重新启动螺栓B1。但是在那之后,螺栓B1不会从喷口接收任何元组。通过调试模式,我可以在workers日志中看到,spout实际上发送元组,但bolt B1似乎从未接收和处理元组 Nimbus.log和supervisor.log未显示任何错误,Storm将工作分配给已恢复的工作人员。

拓扑结构由一个喷嘴和几个螺栓(B1、B2、B3)组成。
拓扑方案如下所示:S->B1->B2->B3。
2个辅助进程用于运行拓扑。
偶尔损坏的数据会进入拓扑结构,导致螺栓B1崩溃。Storm恢复受影响的工作进程并重新启动螺栓B1。但是在那之后,螺栓B1不会从喷口接收任何元组。通过调试模式,我可以在workers日志中看到,spout实际上发送元组,但bolt B1似乎从未接收和处理元组
Nimbus.log和supervisor.log未显示任何错误,Storm将工作分配给已恢复的工作人员。

对于1个工人,恢复过程运行良好,bolt在恢复后接收元组

我的设置:
-Apache Storm 0.9.2
-动物园管理员3.4.5

-Ubuntu12.04.5 LTS

您的bolt中是否有异常堆栈跟踪?Storm ui应该已经捕获了它。我确实有由损坏数据引起的异常的堆栈跟踪。它与业务逻辑相关,发生在螺栓内部。此异常导致异步循环终止,Storm重新启动工作进程。日志中不再有其他异常。@devbox您找到这个问题的根源了吗?我有一个非常类似的问题,失败的任务会被重新创建,但在重新创建之后,不会收到发送给它的元组。