worker –
程序:乙個topology
拓撲會包含乙個或多個
worker
(每個worker
程序只能從屬於乙個特定的
topology)
這些worker
程序會並行跑在集群中不同的伺服器上,即乙個
topology
拓撲其實是由並行執行在
storm
集群中多台伺服器上的程序所組成
executor –
執行緒:executor是由
worker
程序中生成的乙個執行緒 每個
worker
程序中會
執行拓撲當中的
乙個或多個
executor執行緒
乙個executor
執行緒中可以執行乙個或多個
task
任務(預設每個
executor
只執行乙個
task
任務),但是這些
task
任務都是對應著同乙個元件(
spout
、bolt)。
task:實際執行資料處理的最小單元,每個task
即為乙個
spout
或者乙個
bolt
task
數量在整個
topology
生命週期中保持不變,
executor
數量可以變化或手動調整
(預設情況下,
task
數量和executor
是相同的,即每個
executor
執行緒中預設執行乙個
task
任務)
設定worker程序數:
config.setnumworkers(
intworkers)
設定
executor
執行緒數:
topologybuilder.setspout
(string id,
irichspout
spout, number
parallelism_hint)
topologybuilder.setbolt
(string id,
irichbolt
bolt, number
parallelism_hint
),其中,
parallelism_hint
即為executor
執行緒數
設定
task
數量componentconfigurationdeclarer.setnumtasks
(number
val)
config conf = new config() ;
conf.setnumworkers(2);
topologybuilder topologybuilder = new topologybuilder();
topologybuilder.setspout("spout", new myspout(), 1);
topologybuilder.setbolt("green-bolt", new greenbolt(), 2)
.setnumtasks(4)
.shufflegrouping("blue-spout);
舉例:
Storm之併發機制
為了提高storm的並行能力,通常需要設定並行。1.1 worker 程序 設定worker程序數 config.setnumworkers int workers 1.2 executor 執行緒 設定executor執行緒數 topologybuilder.setspout string id,...
Storm的原理和機制
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策略...
Storm學習記錄(一 簡介)
storm是乙個免費並開源的分布式實時計算系統。利用storm可以很容易做到可靠地處理無限的資料流,像hadoop批量處理大資料一樣,storm可以實時處理資料。storm簡單,可以使用任何程式語言。storm有如下特點 程式設計簡單 開發人員只需要關注應用邏輯,而且跟hadoop類似,storm提...