Apache Storm是一個免費、開源的分布式實時計算系統(tǒng)。
標簽:開發(fā)商: Apache
當前版本: v0.9.6
產(chǎn)品類型:控件
產(chǎn)品功能:網(wǎng)絡通訊
平臺語言:
開源水平:不提供源碼
本產(chǎn)品的分類與介紹僅供參考,具體以商家網(wǎng)站介紹為準,如有疑問請來電 023-68661681 咨詢。
* 關(guān)于本產(chǎn)品的分類與介紹僅供參考,精準產(chǎn)品資料以官網(wǎng)介紹為準,如需購買請先行測試。
Storm 實現(xiàn)的一些特征決定了它的性能和可靠性的。Storm 使用 ZeroMQ 傳送消息,這就消除了中間的排隊過程,使得消息能夠直接在任務自身之間流動。在消息的背后,是一種用于序列化和反序列化 Storm 的原語類型的自動化且高效的機制。
Storm 的一個最有趣的地方是它注重容錯和管理。Storm 實現(xiàn)了有保障的消息處理,所以每個元組都會通過該拓撲結(jié)構(gòu)進行全面處理;如果發(fā)現(xiàn)一個元組還未處理,它會自動從噴嘴處重放。Storm 還實現(xiàn)了任務級的故障檢測,在一個任務發(fā)生故障時,消息會自動重新分配以快速重新開始處理。Storm 包含比 Hadoop 更智能的處理管理,流程會由監(jiān)管員來進行管理,以確保資源得到充分使用。
Storm 實現(xiàn)了一種數(shù)據(jù)流模型,其中數(shù)據(jù)持續(xù)地流經(jīng)一個轉(zhuǎn)換實體網(wǎng)絡(如下圖)。一個數(shù)據(jù)流的抽象稱為一個流,這是一個無限的元組序列。元組就像一種使用一些附加的序列化代碼來表示標準數(shù)據(jù)類型(比如整數(shù)、浮點和字節(jié)數(shù)組)或用戶定義類型的結(jié)構(gòu)。每個流由一個惟一 ID 定義,這個 ID 可用于構(gòu)建數(shù)據(jù)源和接收器 (sink) 的拓撲結(jié)構(gòu)。流起源于噴嘴,噴嘴將數(shù)據(jù)從外部來源流入 Storm 拓撲結(jié)構(gòu)中。

接收器(或提供轉(zhuǎn)換的實體)稱為螺栓。螺栓實現(xiàn)了一個流上的單一轉(zhuǎn)換和一個 Storm 拓撲結(jié)構(gòu)中的所有處理。螺栓既可實現(xiàn) MapReduce 之類的傳統(tǒng)功能,也可實現(xiàn)更復雜的操作(單步功能),比如過濾、聚合或與數(shù)據(jù)庫等外部實體通信。典型的 Storm 拓撲結(jié)構(gòu)會實現(xiàn)多個轉(zhuǎn)換,因此需要多個具有獨立元組流的螺栓。噴嘴和螺栓都實現(xiàn)為 Linux? 系統(tǒng)中的一個或多個任務。
可使用 Storm 為詞頻輕松地實現(xiàn) MapReduce 功能。如下圖所示,噴嘴生成文本數(shù)據(jù)流,螺栓實現(xiàn) Map 功能(令牌化一個流的各個單詞)。來自 "map" 螺栓的流然后流入一個實現(xiàn) Reduce 功能的螺栓中(以將單詞聚合到總數(shù)中)。

請注意,螺栓可將數(shù)據(jù)傳輸?shù)蕉?個螺栓,也可接受來自多個來源的數(shù)據(jù)。Storm 擁有流分組 的概念,流分組實現(xiàn)了混排 (shuffling)(隨機但均等地將元組分發(fā)到螺栓)或字段分組(根據(jù)流的字段進行流分區(qū))。還存在其他流分組,包括生成者使用自己的內(nèi)部邏輯路由元組的能力。
但是,Storm 架構(gòu)中一個最有趣的特性是有保障的消息處理。Storm 可保證一個噴嘴發(fā)射出的每個元組都會處理;如果它在超時時間內(nèi)沒有處理,Storm 會從該噴嘴重放該元組。此功能需要一些聰明的技巧來在拓撲結(jié)構(gòu)中跟蹤元素,也是 Storm 的重要的附加價值之一。
除了支持可靠的消息傳送外,Storm 還使用 ZeroMQ 最大化消息傳送性能(刪除中間排隊,實現(xiàn)消息在任務間的直接傳送)。ZeroMQ 合并了擁塞檢測并調(diào)整了它的通信,以優(yōu)化可用的帶寬。
更新時間:2016-02-01 17:02:35.000 | 錄入時間:2016-02-01 15:23:50.000 | 責任編輯:陳俊吉