1. 程式人生 > >Storm並行度和流分組詳解

Storm並行度和流分組詳解

並行度

對於一個拓撲來說,並行度其實就是task,task是最小的計算單元,每個spout/bolt的相關程式碼副本都會執行在一個task中。並不是executor,因為預設情況下一個executor只有一個task,executor的數量和task是相等的。

流分組

流分組表示task與task之間資料流向的關係。如果bolt1有三個task會將資料流向到下游同樣三個task的bolt2。以下為比較常用的分組策略:

  • Shuffle Grouping: 隨機發射,負載均衡
    如果bolt1的一個task發射三條資料,那麼每條資料會流向bolt2中的不同的task來達到負載均衡
  • Fields Grouping: 根據某一個,或者某些個欄位fields進行分組
    task發射的每條資料稱為tuple,tuple可以由很多個field組成,通過一個或者幾個field進行分組,同一組中的這些fields是相同的,那麼這組資料會流向同一個bolt2中的一個task
  • All Grouping: 一個task發射的資料會全部流向下游的每個task