簡體   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