【Storm篇】--Storm并发机制
一、前述
為了提高Storm的并行能力,通常需要設(shè)置并行。
二、具體原理
1. Storm并行分為幾個(gè)方面:
Worker – 進(jìn)程
一個(gè)Topology拓?fù)鋾?huì)包含一個(gè)或多個(gè)Worker(每個(gè)Worker進(jìn)程只能從屬于一個(gè)特定的Topology)
這些Worker進(jìn)程會(huì)并行跑在集群中不同的服務(wù)器上,即一個(gè)Topology拓?fù)淦鋵?shí)是由并行運(yùn)行在Storm集群中多臺(tái)服務(wù)器上的進(jìn)程所組成
Executor – 線程
Executor是由Worker進(jìn)程中生成的一個(gè)線程
每個(gè)Worker進(jìn)程中會(huì)運(yùn)行拓?fù)洚?dāng)中的一個(gè)或多個(gè)Executor線程
一個(gè)Executor線程中可以執(zhí)行一個(gè)或多個(gè)Task任務(wù)(默認(rèn)每個(gè)Executor只執(zhí)行一個(gè)Task任務(wù)),但是這些Task任務(wù)都是對(duì)應(yīng)著同一個(gè)組件(Spout、Bolt)。
Task
實(shí)際執(zhí)行數(shù)據(jù)處理的最小單元
每個(gè)task即為一個(gè)Spout或者一個(gè)Bolt
注意:
Task數(shù)量在整個(gè)Topology生命周期中保持不變,Executor數(shù)量可以變化或手動(dòng)調(diào)整
(默認(rèn)情況下,Task數(shù)量和Executor是相同的,即每個(gè)Executor線程中默認(rèn)運(yùn)行一個(gè)Task任務(wù))
2.在程序中具體設(shè)置:
設(shè)置Worker進(jìn)程數(shù)
Config.setNumWorkers(int workers)
設(shè)置Executor線程數(shù)
TopologyBuilder.setSpout(String id, IRichSpout spout, Number parallelism_hint)
TopologyBuilder.setBolt(String id, IRichBolt bolt, Number parallelism_hint)
:其中, parallelism_hint即為executor線程數(shù)
設(shè)置Task數(shù)量
ComponentConfigurationDeclarer.setNumTasks(Number val)
例:
Config conf = new Config() ;
conf.setNumWorkers(2);//設(shè)置worker數(shù)
TopologyBuilder topologyBuilder = new TopologyBuilder();
topologyBuilder.setSpout("spout", new MySpout(), 1);//設(shè)置線程數(shù)
topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)
?????????????? .setNumTasks(4)//設(shè)置總共的task數(shù)這個(gè)Bolt任務(wù)的
?????????????? .shuffleGrouping("blue-spout);
3.案例詳解
?
4.Rebalance – 再平衡
即,動(dòng)態(tài)調(diào)整Topology拓?fù)涞腤orker進(jìn)程數(shù)量、以及Executor線程數(shù)量
支持兩種調(diào)整方式:
1、通過Storm UI
2、通過Storm CLI(一般用這個(gè)!!!)
通過Storm CLI動(dòng)態(tài)調(diào)整:
例:storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
將mytopology拓?fù)鋡orker進(jìn)程數(shù)量調(diào)整為5個(gè)
“ blue-spout ” 所使用的線程數(shù)量調(diào)整為3個(gè)
“ yellow-bolt ”所使用的線程數(shù)量調(diào)整為10個(gè)
PS:當(dāng)調(diào)整的task或者worker進(jìn)程超過集群配置時(shí),還是按集群最大配置運(yùn)行。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/LHWorldBlog/p/8353278.html
總結(jié)
以上是生活随笔為你收集整理的【Storm篇】--Storm并发机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小z的袜子
- 下一篇: iOS如何查看静态库.a文件支持的cpu