分享

storm 并行度总结,欢迎交流

hyj 发表于 2015-8-23 15:53:16 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 12014
1个worker进程执行的是1个topology的子集(注:不会出现1个worker为多个topology服务)。1个worker进程会启动1个或多个executor线程来执行1个topology的component(spout或bolt)。因此,1个运行中的topology就是由集群中多台物理机上的多个worker进程组成的。


executor是1个被worker进程启动的单独线程。每个executor只会运行1个topology的1个component(spout或bolt)的task(注:task可以是1个或多个,storm默认是1个component只生成1个task,executor线程里会在每次循环里顺序调用所有task实例)。


task是最终运行spout或bolt中代码的单元(注:1个task即为spout或bolt的1个实例,executor线程在执行期间会调用该task的nextTuple或execute方法)。topology启动后,1个component(spout或bolt)的task数目是固定不变的,但该component使用的executor线程数可以动态调整(例如:1个executor线程可以执行该component的1个或多个task实例)。这意味着,对于1个component存在这样的条件:#threads<=#tasks(即:线程数小于等于task数目)。默认情况下task的数目等于executor线程数目,即1个executor线程只运行1个task。
默认情况下,一个supervisor节点会启动4个worker进程。每个worker进程会启动1个executor,每个executor启动1个task。

已有(2)人评论

跳转到指定楼层
邓立辉 发表于 2015-10-20 12:13:51
请问,用trident时,做groupby的时候,数据多了就不执行了,日志也没报错,尝试修改配置文件中相关的buff、size相关的配置也不行。
回复

使用道具 举报

smartleon 发表于 2017-8-17 20:43:59
关于kafkaSpout的并行度的设置有什么建议没有?我topic的分区数是3,开始给设置的并行度为1,24小时运行不停机的话基本够用(数据没有延迟处理),但随着topic里的数据越来越多(来源数据增多,我用flume收集的,flume的收集速度应该比kafkaspout的处理速度快一点),如果stom的topoloy中间停5分钟的话,会导致这个时间差永远追不回来?不知道改如何设置。
我搜索的解决方式是:将kafkaspout的并行度设置为topic的分区数,也就是3,我这样设置了一下,结果UI界面显示的faile的数据量猛增(设置1的情况下,基本不会有失败)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条