本節書摘來自華章計算機《storm企業級應用:實戰、運維和調優》一書中的第3章,第3.6節,作者:馬延輝 陳書美 雷葆華著, 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
task是運作spout或bolt的單元,每一個spout/bolt的線程稱為一個task。
在storm 0.8及之後的版本中,task不再與實體線程對應,同一個spout/bolt的task可能會共享一個實體線程,該線程稱為executor。
實際的資料處理由task完成,在topology的生命周期中,每個元件的task數量不會變化,而executor的數量卻不一定。在一般情況下,線程數小于等于task數量。預設task的數量等于executor線程數量,即一個executor線程隻運作一個task。executor線程在執行期間會調用該task的nexttuple或execute方法。
每個spout或bolt都是通過叢集中的許多任務來執行的。每個任務相當于一個執行線程,可以通過topologybuilder的setspout方法和setbolt方法為每個spout或bolt設定并行數,即任務數。