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