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處理不成功...