Storm之併發機制

2021-09-28 15:44:18 字數 1793 閱讀 2512

為了提高storm的並行能力,通常需要設定並行。

1.1、worker – 程序

// 設定worker程序數

config.setnumworkers(int workers)

1.2、executor – 執行緒

// 設定executor執行緒數

topologybuilder.setspout(string id, irichspout spout, number parallelism_hint)

topologybuilder.setbolt(string id, irichbolt bolt, number parallelism_hint)

// 其中, parallelism_hint即為executor執行緒數

1.3、task

// 設定task數量

componentconfigurationdeclarer.setnumtasks(number val)

注意:task數量在整個topology生命週期中保持不變,executor數量可以變化或手動調整(預設情況下,task數量和executor是相同的,即每個executor執行緒中預設執行乙個task任務)

config conf = new config() ;

conf.setnumworkers(2);//設定worker數

topologybuilder topologybuilder = new topologybuilder();

topologybuilder.setspout("spout", new myspout(), 1);//設定執行緒數

topologybuilder.setbolt("green-bolt", new greenbolt(), 2)

.setnumtasks(4)//設定總共的task數這個bolt任務的

三、rebalance – 再平衡即,動態調整topology拓撲的worker程序數量、以及executor執行緒數量

支援兩種調整方式:

1、通過storm ui

2、通過storm cli(推薦!)

通過storm cli動態調整:

例:storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10

將mytopology拓撲worker程序數量調整為5個

「 blue-spout 」 所使用的執行緒數量調整為3個

「 yellow-bolt 」所使用的執行緒數量調整為10個

注:當調整的task或者worker程序超過集群配置時,還是按集群最大配置執行。

Storm學習記錄(四 併發機制和通訊機制)

worker 程序 乙個topology 拓撲會包含乙個或多個 worker 每個worker 程序只能從屬於乙個特定的 topology 這些worker 程序會並行跑在集群中不同的伺服器上,即乙個 topology 拓撲其實是由並行執行在 storm 集群中多台伺服器上的程序所組成 execut...

Storm容錯機制

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

storm併發度理解

乙個執行中的拓撲是由什麼組成的 worker程序,executors和tasks。storm是按照下面3種主要的部分來區分storm集群中乙個實際執行的拓撲的 worker程序 executors 執行緒 以及真正實施計算的 tasks 任務 先簡單回顧一下storm幾個核心概念 同時還有幾個關鍵的...