您好,登錄后才能下訂單哦!
這篇文章主要講解了“Storm拓撲并發度怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“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拓撲并發度怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。