Storm的原理和機制

2022-09-06 09:42:13 字數 1096 閱讀 9774

1.資料流型別

(1) spout -> bolt

(2) spout -> bolt1 -> bolt2 -> .. (即多層bolt,把邏輯和演算法分解成多個環節執行)

(3) spout*n -> bolt (即多個spout發資料給1個bolt處理)

(4) spout -> bolt*n (即1個spout發資料給多個bolt處理)

2.grouping策略

grouping策略就是在spout與bolt、bolt與bolt之間傳遞tuple的方式

(1) shufflegrouping(隨機分組)

(2) fieldsgrouping(按照字段分組,在這裡即是同乙個單詞只能傳送給乙個bolt)

(3) allgrouping(廣播傳送,即每乙個tuple,每乙個bolt都會收到)

(4) globalgrouping(全域性分組,將tuple分配到task id值最低的task裡面)

(5) nonegrouping(隨機分派)

(6) directgrouping(直接分組,指定tuple與bolt的對應傳送關係)

(7) local or shuffle grouping

(8) customgrouping (自定義的grouping)

3.**邏輯

(1) 建立任務拓撲topology

topology用於繫結任務和提交執行

(2) 繫結spout類

spout一般用於獲取資料,並用turple把資料傳送給bolt

(3) 繫結bolt類

bolt一般是使用者處理資料,可以有多層bolt,即bolt1處理完把結果發給bolt2做下一步處理

(4) 提交topology給storm

(5) 打包成jar檔案,發布到storm環境執行

storm的安裝與部署

storm的開發使用

Storm容錯機制

1.bolt任務crash引起的訊息未被應答。此時,acker中所有與此bolt任務關聯的訊息都會因為超時而失敗,對應的spout的fail方法將被呼叫。2.acker任務失敗。如果acker任務本身失敗了,它在失敗之前持有的所有訊息都將超時而失敗。spout的fail方法將被呼叫。3.spout任...

storm中fieldsGroup的機制

說實話storm功能非常強大,但是參考資料是在是太少了,有些只能自己摸索,專案中用到了fieldsgroup,所以就研究一下。fieldsgroup的機制是把declar中暴露定義的fields中的字段進行hash,然後分到不同的bolt中,開始理解有誤,所以一直跑不通。囧 直接上 在第乙個spou...

storm中的ack fail機制

概念 storm的ack fail機制也就是storm的可靠訊息處理機制,通俗來講就是給spout發出的每個tuple帶上乙個messageid,然後這個spout下面的每乙個bolt 都會給他返回乙個完成情況,只有當每乙個bolt都返回了正確的結果,整個傳送過程才算成功,任何乙個bolt處理不成功...