Storm学习记录(四、并发机制和通信机制)

本文深入探讨了Apache Storm的并发机制,包括Worker进程、Executor线程和Task的运作方式,以及如何通过配置参数来调整这些组件的数量。同时,文章还提到了Storm中的通信机制,为读者提供了全面的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、并发机制

Worker – 进程:一个Topology拓扑会包含一个或多个Worker(每个Worker进程只能从属于一个特定的Topology

这些Worker进程会并行跑在集群中不同的服务器上,即一个Topology拓扑其实是由并行运行在Storm集群中多台服务器上的进程所组成

Executor – 线程:Executor是由Worker进程中生成的一个线程

每个Worker进程中会运行拓扑当中一个或多个Executor线程

一个Executor线程中可以执行一个或多个Task任务(默认每个Executor只执行一个Task任务),但是这些Task任务都是对应着同一个组件(SpoutBolt)。

Task:实际执行数据处理的最小单元,每个task即为一个Spout或者一个Bolt

Task数量在整个Topology生命周期中保持不变,Executor数量可以变化或手动调整

(默认情况下,Task数量和Executor是相同的,即每个Executor线程中默认运行一个Task任务)

设置Worker进程数:

Config.setNumWorkers(int workers)

设置Executor线程数:

TopologyBuilder.setSpout(String id, IRichSpout spout, Number parallelism_hint)

TopologyBuilder.setBolt(String id, IRichBolt bolt, Number parallelism_hint),其中, parallelism_hint即为executor线程数

设置Task数量

ComponentConfigurationDeclarer.setNumTasks(Number val)

Config conf = new Config() ;
conf.setNumWorkers(2);

TopologyBuilder topologyBuilder = new TopologyBuilder();
topologyBuilder.setSpout("spout", new MySpout(), 1);
topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)
               .setNumTasks(4)
               .shuffleGrouping("blue-spout);

举例: 

 

二、通信机制

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值