Apache Storm是一個免費、開源的分布式實時計算系統。
標簽:開發商: Apache
當前版本: v0.9.6
產品類型:控件
產品功能:網絡通訊
平臺語言:
開源水平:不提供源碼
本產品的分類與介紹僅供參考,具體以商家網站介紹為準,如有疑問請來電 023-68661681 咨詢。
* 關于本產品的分類與介紹僅供參考,精準產品資料以官網介紹為準,如需購買請先行測試。
Storm 實現的一些特征決定了它的性能和可靠性的。Storm 使用 ZeroMQ 傳送消息,這就消除了中間的排隊過程,使得消息能夠直接在任務自身之間流動。在消息的背后,是一種用于序列化和反序列化 Storm 的原語類型的自動化且高效的機制。
Storm 的一個最有趣的地方是它注重容錯和管理。Storm 實現了有保障的消息處理,所以每個元組都會通過該拓撲結構進行全面處理;如果發現一個元組還未處理,它會自動從噴嘴處重放。Storm 還實現了任務級的故障檢測,在一個任務發生故障時,消息會自動重新分配以快速重新開始處理。Storm 包含比 Hadoop 更智能的處理管理,流程會由監管員來進行管理,以確保資源得到充分使用。
Storm 實現了一種數據流模型,其中數據持續地流經一個轉換實體網絡(如下圖)。一個數據流的抽象稱為一個流,這是一個無限的元組序列。元組就像一種使用一些附加的序列化代碼來表示標準數據類型(比如整數、浮點和字節數組)或用戶定義類型的結構。每個流由一個惟一 ID 定義,這個 ID 可用于構建數據源和接收器 (sink) 的拓撲結構。流起源于噴嘴,噴嘴將數據從外部來源流入 Storm 拓撲結構中。
接收器(或提供轉換的實體)稱為螺栓。螺栓實現了一個流上的單一轉換和一個 Storm 拓撲結構中的所有處理。螺栓既可實現 MapReduce 之類的傳統功能,也可實現更復雜的操作(單步功能),比如過濾、聚合或與數據庫等外部實體通信。典型的 Storm 拓撲結構會實現多個轉換,因此需要多個具有獨立元組流的螺栓。噴嘴和螺栓都實現為 Linux? 系統中的一個或多個任務。
可使用 Storm 為詞頻輕松地實現 MapReduce 功能。如下圖所示,噴嘴生成文本數據流,螺栓實現 Map 功能(令牌化一個流的各個單詞)。來自 "map" 螺栓的流然后流入一個實現 Reduce 功能的螺栓中(以將單詞聚合到總數中)。
請注意,螺栓可將數據傳輸到多個螺栓,也可接受來自多個來源的數據。Storm 擁有流分組 的概念,流分組實現了混排 (shuffling)(隨機但均等地將元組分發到螺栓)或字段分組(根據流的字段進行流分區)。還存在其他流分組,包括生成者使用自己的內部邏輯路由元組的能力。
但是,Storm 架構中一個最有趣的特性是有保障的消息處理。Storm 可保證一個噴嘴發射出的每個元組都會處理;如果它在超時時間內沒有處理,Storm 會從該噴嘴重放該元組。此功能需要一些聰明的技巧來在拓撲結構中跟蹤元素,也是 Storm 的重要的附加價值之一。
除了支持可靠的消息傳送外,Storm 還使用 ZeroMQ 最大化消息傳送性能(刪除中間排隊,實現消息在任務間的直接傳送)。ZeroMQ 合并了擁塞檢測并調整了它的通信,以優化可用的帶寬。
更新時間:2016-02-01 17:02:35.000 | 錄入時間:2016-02-01 15:23:50.000 | 責任編輯:陳俊吉