Twitter Heron 实时流处理系统简介
????????Twitter Heron是Twitter公司開源的一個實時的、容錯的、分布式的流數據處理系統。Heron是Apache Storm的直接繼承者。它繼承了Apache Storm的實時性、容錯、低延遲的特性。并且它保留了Apache Storm的Topology API,使用者可以直接將Apache Storm上構建的Topology項目,直接轉移到Apache Storm中運行而不需要做其他更改。它廣泛應用于實時分析、連續計算、復雜事件處理和一些實時性要求的應用。相比于Apache Storm,它提供了擴展性更好,調試能力更強,性能更好,管理更容易等特性。它能夠每秒鐘百萬級別的吞吐量和毫秒級別的延遲。目前Twitter Heron被Twitter公司廣泛使用。
圖4-xxx Twitter Heron系統架構,來自SIGMOD 15的Twitter Heron論文
????????Twitter Heron相比于Apache Storm,Heron有如下幾個優點。首先,與storm不同Heron Instance是一個獨立的jvm進程,可能是spout也可能是bolt,這樣比較清晰,更容易debug,不會像storm一樣很多spout、bolt在一個jvm進程內運行。其次TwitterHeron中Topology只會使用他們初始分配的資源,永遠不能超過他們資源限制。TwitterHeron利用YARN進行資源調度。然后,Heron有內置的反壓機制來確保拓撲在組件緩慢的情況下可以自適應。最后Heron中對系統設計進行更好的優化,使得Heron相比Apache Storm有更高的吞吐量和更低的延遲。
????????圖4顯示了Twitter Heron的整體架構。用戶通過客戶端將Topology提交給Twitter Heron。Topology Master管理了Topology整個生命周期,它包括對系統資源進行統一分配,將Topology中每個Instance通過封裝到一個Container中去執行。Stream Manager主要是管理tuple的路由,每個HeronInstance連接到自己本地的StreamManager,每個StreamManager和它相關的StreamManager連接接收、發送tuple。與storm不同Heron Instance是一個獨立的jvm進程,可能是spout也可能是bolt,這樣比較清晰,更容易debug,不會像storm一樣很多spout、bolt在一個jvm進程內運行。HeronInstance 有兩個線程來運行,其中一個線程負責數據的輸入輸出和通信。還有一個線程負責運行用戶邏輯代碼。Container是YARN中的資源抽象,它封裝了某個節點上的多維度資源,如內存、CPU等。并且多個HeronInstance運行在YARNContainer上,有YARNContainer進行統一管理。每個Container中運行一個Metrics Manager(MM),用于收集和導出一個container中所有組件的Metrics信息。這些Metrics信息包括系統Metrics和Topology的用戶Metrics。然后這些Metrics信息可以路由給Topology Master和一些外部Metrics收集器,如Scribe等系統。
????????Twitter Heron使用了更加先進的設計,并且它能夠方便的調試程序,它還能夠兼容Apache Storm 的Topology API。相比Apache Storm,它提供更好的吞吐量和低延遲的性能。
總結
以上是生活随笔為你收集整理的Twitter Heron 实时流处理系统简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache SparkStreamin
- 下一篇: 大数据技术:分布式系统和分布式事务