分佈式實時運算系統Storm更新2.0重大改善Java實作

Apache底下的分佈式實時運算系統Storm睽違一年,終於釋出主要版本更新Storm 2.0,這個版本在效能跟功能上,都有重大改善,其核心重新以Java實作,不只改善了效能,更方便功能的擴充,而新版本也改變了與數據串流系統Kafka整合的方式。Apache Storm是一個開源分佈式計算系統,可以處理與Hadoop類似的工作,只不過Hadoop只能以批次進行,但是Storm卻能連續無限的處理資料串流,進行像是實時分析、在線機器學習或是ETL等工作。Apache Storm的執行速度非常快,其基準檢驗每個節點每秒可以處理超過一百萬個值組(Tuple)。
分佈式實時運算系統Storm更新2.0重大改善Java實作
開發團隊重新設計Storm的核心,把原本用Clojure實作的部分拿掉,現在整個核心都是以純Java實作,除了提高了效能之外,也讓Storm內部的API更容易使用以及擴展,官方提到,過去Storm中使用Clojure實作的部分也沒有不好,只是因爲Clojure學習障礙比較高,阻礙了許多新進貢獻者,而在改成Java後,Storm程序代碼將更容易維護。Storm 2.0的核心簡化了線程模型,並且加入了高效能的訊息傳輸子系統,以及輕量級的背壓(Back Pressure)模型,以向後兼容的前提,提高訊息吞吐量並降低延遲,這些改進讓Storm 2.0成爲一個可以打破1微秒延遲障壁的串流引擎。Storm 2.0中加入了一個新類型API,讓使用者可以更簡單地以函式表達串流運算,這些API建立在覈心之上,核心會自動融合多重操作,並最佳化工作管線。
另外,Storm 2.0與Kafka的整合大幅度地變更,原本Storm 1.x版本的Kafka整合是使用storm-kafka模塊,但是由於Kafka棄用了底層的客戶端函式庫,因此Storm的使用者,現在必須轉而使用storm-kafka-client模塊,這個模塊是整合kafka-clients函式庫撰寫而成。官方表示,新舊模塊的搬遷很簡單,他們也提供了說明文件,讓用戶對照新舊模塊的功能。值得注意的是,storm-kafka-client模塊在Storm 1.x的時候,允許Kafka以自己的機制管理接口(Spout)與其負責的扇區,但後來經官方評估,認爲這個機制並不適合Storm,因此在1.2.0棄用,並於2.0完全移除。而且storm-kafka-client模塊的訂閱接口也被移除,官方提到,除非使用者自定義訂閱實作,否則不會有影響。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章