溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Storm拓?fù)洳l(fā)度怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2021-12-23 14:13:12 來(lái)源:億速云 閱讀:160 作者:iii 欄目:云計(jì)算

這篇文章主要講解了“Storm拓?fù)洳l(fā)度怎么實(shí)現(xiàn)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Storm拓?fù)洳l(fā)度怎么實(shí)現(xiàn)”吧!

1 Storm是按照下面三種主要的部分來(lái)區(qū)分Storm集群之中一個(gè)世紀(jì)運(yùn)行的拓?fù)涞模?/p>

1 : worker

2:Executor (線程)

3:tasks

下圖簡(jiǎn)單的說(shuō)明了他們的關(guān)系~ ,好的,這是一張重復(fù)發(fā)表的結(jié)構(gòu)圖:

Storm拓?fù)洳l(fā)度怎么實(shí)現(xiàn)

 對(duì)于上文而言,一個(gè)Task,也就是  :

一個(gè)Executor 是一個(gè)worker 進(jìn)程生成的一個(gè)線程,他可能運(yùn)行著一個(gè)相同的組件 Spout和bolt的一個(gè)或者

多個(gè)task

1 個(gè)task執(zhí)行著實(shí)際的數(shù)據(jù)處理,你用代碼實(shí)現(xiàn)的每一個(gè)spout或bolt就相當(dāng)于分布于整個(gè)集群中的許多個(gè)task。

在1個(gè)拓?fù)涞纳芷谥校?個(gè)組 件的task的數(shù)量總是一樣的,但是1個(gè)組件的executor(線程)的數(shù)量可以隨著時(shí)

間而改變。這意味著下面的條件總是成立:thread的數(shù)量 <= task的數(shù)量。默認(rèn)情況下,task的數(shù)量與executor的

數(shù)量一樣,例如,Storm會(huì)在每1個(gè)線程運(yùn)行1個(gè)task。

配置拓?fù)涞牟l(fā)度

注意Storm的術(shù)語(yǔ)"并發(fā)度(parallelism)"是特別用來(lái)描述所謂的parallelism hint的,這代表1個(gè)組件的初始的executor(線程)的數(shù)量。在此文檔中我們使用術(shù)語(yǔ)"并發(fā)度"的一般意義來(lái)描述你不但可以配置executor的數(shù)量,還可以配置worker進(jìn)程的數(shù)量,還可以是1個(gè)拓?fù)涞膖ask的數(shù)量。在用到并發(fā)度的狹義的定義時(shí)我們會(huì)特別提出。

下面的小節(jié)給出了一些不同的配置選項(xiàng),還有你如何在代碼中設(shè)置它們。有多種方法可以進(jìn)行設(shè)置,表格列舉了其中幾種。Storm目前有下列的配置優(yōu)先級(jí):defaults.yaml < storm.yaml < 特定拓?fù)涞呐渲?< 內(nèi)部特定組件的配置 < 外部特定組件的配置。

指標(biāo) 1: worker 進(jìn)程的數(shù)量

描述: 一個(gè)拓?fù)溆卸嗌賯€(gè)分布于集群中的機(jī)器的Wokrer 進(jìn)程

配置選項(xiàng): TopoLogy_workers

如何在代碼中設(shè)置:   Config.setNumWorkers

指標(biāo) 2: executor的數(shù)量 (線程)

描述 : 每個(gè)組件會(huì)有多好個(gè) executor

配置選項(xiàng) :

    TopologyBuilder.setPout();

    TopologyBuilder.setBolt();

指標(biāo) 3:task的數(shù)量:

  • ComponentConfigurationDeclarer#setNumTasks()

       好比在具體的實(shí)踐之中:

       topologyBuilder.setBolt("green-bolt",new GreenBolt(),2).setNumTasks(4).shuffleGrouping("blue-spout");   

    在上面的代碼中,我們配置了Storm運(yùn)行GreenBolt指定了初始有

                                                                                                1:『 2 個(gè)executor 』

                                                                                                2:『4 個(gè)相關(guān)的task』

一個(gè)運(yùn)行中的拓?fù)涞睦?/p>

        

        下面我們來(lái)看看以下,簡(jiǎn)單的三元色, 藍(lán),綠,黃 三個(gè)bolt的的流動(dòng)關(guān)系:

        Storm拓?fù)洳l(fā)度怎么實(shí)現(xiàn)

   在上圖之中,總共的 parallellsm為10,一共有兩個(gè)worker【也就是上圖之中,2個(gè)比較大的分區(qū)】,每個(gè)Worker

具備有 10/2 =5 條線程

請(qǐng)注意

     綠色的Bolt配置成2個(gè)executor 和4個(gè)task,為此每個(gè)executor 為這個(gè)bolt 運(yùn)行2個(gè)task

 以下的代碼可以配置以上的說(shuō)明組件:

Config conf = new Conf();
conf.setNumWorkers(2);          在這里我們使用兩個(gè)Worker進(jìn)程
topologyBuilder.setSpout("bule-spout",newBlueSpout(),2);   我們的blue不斷產(chǎn)生數(shù)據(jù),
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拓?fù)洳l(fā)度怎么實(shí)現(xiàn)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Storm拓?fù)洳l(fā)度怎么實(shí)現(xiàn)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI