Storm和Kafka集成的重要生产错误和修复
我將在此處描述Storm和Kafka集成模塊的一些細(xì)節(jié),一些您應(yīng)該意識到的重要錯誤以及如何克服其中的一些錯誤(尤其是對于生產(chǎn)安裝)。
我在生產(chǎn)安裝中大量使用Apache Storm,并將Kafka作為主要輸入源(Spout)。
使用Kafka和版本的Storm集成模塊:
- Storm 0.x通過現(xiàn)有模塊storm-kafka支持Kafka 0.8.x
- Storm 1.0.x通過新模塊storm-kafka-client支持Kafka 0.9.x
- Storm 1.x通過新模塊storm-kafka-client支持Kafka 0.10.x
最近,我將Storm 1.0.3 (從0.9.6)升級到Kafka 0.9.0.1 (從0.8.2.2)。
不幸的是,Storm 1.0.3有兩個主要的錯誤 ,您必須解決這些錯誤才能在生產(chǎn)環(huán)境中使用它。
主要錯誤(與Kafka相關(guān)):
當(dāng)開始從Storm 0.9.6到1.0.3的遷移過程時,我遇到了上述錯誤。 在強(qiáng)調(diào)我的拓?fù)鋾r,各種事情開始不起作用,或者看到停滯不前的Workers停止處理數(shù)據(jù)。
在閱讀了許多日志并進(jìn)行了許多測試之后,我們終于了解了這個問題(KafkaSpout錯誤)。 我們暫停了遷移過程,并希望解決這些問題。
幸運(yùn)的是,Storm提交者已經(jīng)修復(fù)了這些錯誤,因此已經(jīng)提供了解決方案。 非常感謝Storm社區(qū)!!!
為了解決這些問題,我將這兩個修補(bǔ)程序移植到了“ storm-kafka-client ”的派生版本中,并發(fā)布了具有新maven版本( 1.0.3- <custom> 1.0 )的新自定義模塊。 然后,我僅在項目中引用新的自定義版本。
之后,我們再次開始了壓力測試,一切都按預(yù)期進(jìn)行。
請注意,錯誤“ 2087”僅在1.x分支中已修復(fù),但將其移植到1.0.3版本非常容易。
幸運(yùn)的是,幾天前發(fā)布了Storm 1.1.0 。 此版本已經(jīng)修復(fù)了這些錯誤以及許多其他錯誤。 我尚未進(jìn)行測試,但是我會盡快嘗試。
當(dāng)我將這些修訂移植回1.0.3版本時,沒有Storm 1.1.0版本。
如果您打算使用Storm 1.0.3發(fā)行版,那么您必須知道該發(fā)行版的一些其他錯誤,您可能需要在“ custom ”發(fā)行版中對其進(jìn)行修復(fù):
- “ Kafka中斷可能導(dǎo)致拓?fù)滏i定” [ STORM-2440 ] [ FIX ]
- “ ReportErrorAndDie并不總是消亡” [ STORM-2194 ] [ 修復(fù) ]
- “在捕獲InterruptedException之后,Utils.sleep方法未設(shè)置中斷標(biāo)志” [ STORM-2396 ] [ 修復(fù) ]
- “即使topology.eventlogger.executors = 0,也會實例化事件記錄器螺栓” [ STORM-2389 ] [ 修復(fù) ]
- “故障恢復(fù)Blob刪除在BlobSynchronizer.syncBlobs中也失敗” [ STORM-2386 ] [ FIX ](與Nimbus HA有關(guān))
- “ Storm-HDFS的listFilesByModificationTime已損壞” [ STORM-2350 ] [ 修復(fù) ]
- “ ReadClusterState的ProfileAction處理映射中的類型不匹配” [ STORM-2345 ] [ FIX ]
上述大多數(shù)錯誤(2440和2194除外)已在Storm 1.1.0版本中解決。 新版本包含您可能感興趣的新功能(流式SQL,Druid和OpenTSB集成等)。
最好的祝福,
阿德里安斯·達(dá)迪斯(Adrianos Dadis)。
真正的民主需要免費軟件
翻譯自: https://www.javacodegeeks.com/2017/04/important-production-bugs-fixes-storm-kafka-integration.html
總結(jié)
以上是生活随笔為你收集整理的Storm和Kafka集成的重要生产错误和修复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: guava api_使用Google G
- 下一篇: 猜一猜用英语怎么说 猜一猜的英语是什么