繁体   English   中英

Apache Storm螺栓可能超时

[英]Apache Storm bolt possibly timing out

我对Storm还是比较陌生,我正在尝试创建一个将接收文件,分析内容然后运行第三方API对该内容进行一些分析的拓扑。

我有一个拓扑结构,一个喷嘴和三个螺栓。 基本上,喷嘴将文件送入第一个螺栓,该螺栓将提取文件内容。 然后第二个螺栓将运行第三方分析,最后一个螺栓将所有内容写入xml字符串表示形式。

我已经测试了前两个螺栓是否按预期工作,但是当我添加最后一个螺栓时出现了问题。 似乎第二个螺栓需要花费很长时间才能运行,而Storm正在超时。 第三方代码的执行时间大约需要37秒。 我一直在阅读,风暴会在30秒后使喷口超时并使它失败。

我一直在日志中看到这一点:

  17580 [Thread-9-disruptor-executor[3 3]-send-queue] INFO  backtype.storm.util - Async loop interrupted!

我试图使用以下方法在拓扑类中设置我的TOPOLOGY_MESSAGE_TIMEOUT_SEC配置:

conf.setMessageTimeoutSecs(300);   

但这似乎不起作用。 关于如何增加喷口超时的任何想法,以便可以给它们充足的时间来完成执行?

该时间(300秒)意味着,一旦喷嘴喷出一个元组,拓扑将有300秒的时间来处理该元组,并且所有随后的元组都会由于该元组而在整个拓扑中波动(通过三个螺栓)。

如果喷口发出第二个元组,但第一个螺栓仍在处理第一个元组,则该第二个元组的时钟仍在滴答作响。

这意味着您要么必须:

1)增加螺栓的平行度提示,以使没有积压,从而降低了喷嘴所发出的任何元组的处理速度,或者

2)在必须等待其中一个元组完成之前,使用topology.max.spout.pending属性来限制spout可以发出的元组数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM