共計 1947 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章主要講解了“Storm 拓撲并發度怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“Storm 拓撲并發度怎么實現”吧!
1 Storm 是按照下面三種主要的部分來區分 Storm 集群之中一個世紀運行的拓撲的:
1:worker
2:Executor (線程)
3:tasks
下圖簡單的說明了他們的關系~,好的,這是一張重復發表的結構圖:
對于上文而言,一個 Task,也就是 :
一個 Executor 是一個 worker 進程生成的一個線程,他可能運行著一個相同的組件 Spout 和 bolt 的一個或者
多個 task
1 個 task 執行著實際的數據處理,你用代碼實現的每一個 spout 或 bolt 就相當于分布于整個集群中的許多個 task。
在 1 個拓撲的生命周期中,1 個組 件的 task 的數量總是一樣的,但是 1 個組件的 executor(線程)的數量可以隨著時
間而改變。這意味著下面的條件總是成立:thread 的數量 = task 的數量。默認情況下,task 的數量與 executor 的
數量一樣,例如,Storm 會在每 1 個線程運行 1 個 task。
配置拓撲的并發度
注意 Storm 的術語 并發度 (parallelism) 是特別用來描述所謂的 parallelism hint 的,這代表 1 個組件的初始的 executor(線程) 的數量。在此文檔中我們使用術語 并發度 的一般意義來描述你不但可以配置 executor 的數量,還可以配置 worker 進程的數量,還可以是 1 個拓撲的 task 的數量。在用到并發度的狹義的定義時我們會特別提出。
下面的小節給出了一些不同的配置選項,還有你如何在代碼中設置它們。有多種方法可以進行設置,表格列舉了其中幾種。Storm 目前有下列的配置優先級:defaults.yaml storm.yaml 特定拓撲的配置 內部特定組件的配置 外部特定組件的配置。
指標 1: worker 進程的數量
描述:一個拓撲有多少個分布于集群中的機器的 Wokrer 進程
配置選項:TopoLogy_workers
如何在代碼中設置: Config.setNumWorkers
指標 2:executor 的數量 (線程)
描述:每個組件會有多好個 executor
配置選項 :
TopologyBuilder.setPout();
TopologyBuilder.setBolt();
指標 3:task 的數量:
ComponentConfigurationDeclarer#setNumTasks()
好比在具體的實踐之中:
topologyBuilder.setBolt(green-bolt ,new GreenBolt(),2).setNumTasks(4).shuffleGrouping(blue-spout
在上面的代碼中,我們配置了 Storm 運行 GreenBolt 指定了初始有
1:『2 個 executor』
2:『4 個相關的 task』
一個運行中的拓撲的例子
下面我們來看看以下,簡單的三元色,藍,綠,黃 三個 bolt 的的流動關系:
在上圖之中,總共的 parallellsm 為 10,一共有兩個 worker【也就是上圖之中,2 個比較大的分區】,每個 Worker
具備有 10/2 =5 條線程
請注意
綠色的 Bolt 配置成 2 個 executor 和 4 個 task,為此每個 executor 為這個 bolt 運行 2 個 task
以下的代碼可以配置以上的說明組件:
Config conf = new Conf();
conf.setNumWorkers(2); 在這里我們使用兩個 Worker 進程
topologyBuilder.setSpout(bule-spout,newBlueSpout(),2); 我們的 blue 不斷產生數據,topologyBuilder.setBolt(green-bolt ,new GreenBolt(),2).setNumTasks(4).shuffleGrouping( blueSpout
topologyBuilder.setBolt(“yellow-bolt”, new YellowBolt(), 6) .shuffleGrouping(“green-bolt”);
StormSubmitter.submitTopology( “mytopology”, conf, topologyBuilder.createTopology());
感謝各位的閱讀,以上就是“Storm 拓撲并發度怎么實現”的內容了,經過本文的學習后,相信大家對 Storm 拓撲并發度怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!