码迷,mamicode.com
首页 > 其他好文 > 详细

Strom Topology执行分析:worker数,Bolt实例数,executor数,task数(转)

时间:2015-03-20 16:15:33      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

来自:http://blog.csdn.net/jmppok/article/details/17244599

 

在创建Storm的Topology时,我们通常使用如下代码:

builder.setBolt("cpp", new CppBolt(), 3).setNumTasks(5).noneGrouping(pre_name);  

Config conf = new Config();  

conf.setNumWorkers(3);  


参数1:bolt名称 "cpp"

 

参数2:bolt类型 CppBolt

参数3:bolt的并行数,parallelismNum,即运行topology时,该bolt的线程数

setNumTasks() 设置bolt的task数

noneGrouping()  设置输入流方式及字段

conf.setNumWorkers()设置worker数据。

 

经过多次试验总结,得出如下结论:

1)Topology的worker数通过config设置,即执行该topology的worker(java)进程数。它可以通过storm rebalance 命令任意调整。

2) Topology中某个bolt的executor数,即parallelismNum,即执行该bolt的线程数,在setBolt时由第三个参数指定。它可以通过storm rebalance 命令调整,但最大不能超过该bolt的task数;

3) bolt的task数,通过setNumTasks()设置。(也可不设置,默认取bolt的executor数),无法在运行时调整。

4)Bolt实例数,这个比较特别,它和task数相等。有多少个task就会new 多少个Bolt对象。而这些Bolt对象在运行时由Bolt的thread进行调度。也即是说

 

builder.setBolt("cpp", new CppBolt(), 3).setNumTasks(5).noneGrouping(pre_name);  

 

 

会创建3个线程,但有内存中会5个CppBolt对象,三个线程调度5个对象。

 

 

Strom Topology执行分析:worker数,Bolt实例数,executor数,task数(转)

标签:

原文地址:http://www.cnblogs.com/sunxucool/p/4353683.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!