`

Storm线程进程分配方法

 
阅读更多

运行中的Topology主要由以下三个组件组成的:

  • Worker processes(进程)
  • Executors (threads)(线程)
  • Tasks

其中进程数除以机器数可以得到每台机器的进程数,我们以一台机器为例:

ata1

Spout或者Bolt的Task个数一旦指定之后就不能改变了,而Executor的数量可以根据情况来进行动态的调整。默认情况下# executor = #tasks即一个Executor中运行着一个Task。

ata2

如上面代码所示:
进程数=numWorkers=2
线程数=blue_parallelism_hint(2)+green_parallelism_hint(2)+yellow_parallelism_hint(6)=10

10个线程/2个进程 = 5个线程/进程

Blue-Spout 线程数 = 2 
Blue-Spout Task数 = Blue-Spout NumTasks = 4

4/2=2 即每个Blue-Spout线程有2个Task。

线程数量即并发度可以动态调整,其它的参数启动后就不能调整了。

以一张图更清晰的说明:

ata3

分享到:
评论

相关推荐

    Storm the Gates, windowsAPI 多线程

    因此,在设计多线程程序时,需要注意任务分配的均衡,避免过多的线程竞争资源。合理使用线程池和异步操作可以进一步优化性能。 总结,Windows API 多线程编程是C++开发者掌握的一项重要技能,它使得程序能够更好地...

    Storm源码走读笔记

    本文档是关于Storm源码的详细走读笔记,主要分析了Storm的启动场景、Topology提交过程、worker进程中的线程使用情况、消息传递机制以及 TridentTopology的创建和ack机制等多个方面。 首先,文档提到了Storm集群中的...

    Storm 源码分析

    - **Supervisor**:每个Worker节点上的管理进程,负责监听Nimbus分配的任务,并启动对应的Worker进程。 - **Worker**:实际执行任务的进程,每个Worker进程运行一部分Topology实例。 当用户提交一个Topology任务后...

    STORM学习文档

    五、Worker 进程中的线程种类及用途 Worker 进程中有多种线程,包括: * 接收和发送线程:负责接收和发送消息。 * zk client 线程:负责向 Zookeeper 发送心跳消息。 * 定时器线程:负责定期执行一些任务,例如...

    storm原理分析

    3. **Storm/assignments/**:存储 Nimbus 为每个 Topology 分配的任务信息,包括本地存储目录、分配到的 Supervisor 机器映射关系、每个 Executor 所在 Worker 位置及启动时间等。 4. **Storm/supervisors/**:存储...

    Apache Storm Buffer内部机制简介Prezi幻灯片

    - 在Storm中,Buffer通常与多个线程交互。生产者线程(例如Spout或Bolt)将数据放入Buffer,而消费者线程(如下游的Bolt)则负责处理和转发这些数据。 - LMAX Disruptor引入了序列号的概念,确保在多线程环境下的...

    storm剖析(pdf)

    Worker是一个JVM进程,它占用一个Slot并用于执行多个Spout/Bolt任务。Executor代表了一个线程,负责真正执行一个Spout/Bolt任务。 在了解了Storm的关键概念和组件之后,我们再来看一下Storm的API和机制。Storm提供...

    storm安装软件包

    - **Worker**:实际执行拓扑任务的进程,包含多个线程,每个线程运行一个Bolt或Spout实例。 - **Spout**:负责读取数据源并生成数据流。 - **Bolt**:处理数据流,进行计算、过滤、聚合等操作。 - **Zookeeper**:...

    Apache Hadoop---Storm.docx

    Supervisors则在各节点上接收Nimbus分配的任务,启动和停止worker进程。Workers运行具体的Spout和Bolt任务,每个worker可以包含多个task,这些task在executor线程中运行。Spout作为数据源,从外部数据源拉取数据并...

    storm实时计算

    4. **Task**:Worker进程中的一个线程,执行具体的Spout或Bolt任务。 5. **Slots**:表示系统总的进程数量,每个Slot可以运行一个Worker进程。 6. **Nimbus与Supervisors**:通过Zookeeper集群进行交互和协调。...

    漫谈大数据第四期-storm

    计算是在多个线程、进程和服务器之间并行进行的。 可靠的消息处理。Storm保证每个消息至少能得到一次完整处理。任务失败时,它会负责从消息源重试消息。 快速。系统的设计保证了消息能得到快速的处理,使用ØMQ作为...

    Storm的文档详解

    - **Supervisor**:负责接受 Nimbus 分配的任务,并在本地机器上启动和停止 Worker 进程。通过配置文件可以设置当前 Supervisor 启动的 Worker 数量。 - **Worker**:执行实际数据处理的进程,每个 Worker 运行特定...

    storm一个简单实例

    3. **Storm集群部署**:实例在集群中运行,说明会涉及Zookeeper协调、Nimbus节点分配任务、Supervisor管理worker进程等集群管理内容。 4. **Java编程**:作为主要开发语言,Java提供了丰富的类库和工具,使得开发、...

    Storm调研及部署文档

    当某个节点出现故障时,Storm可以快速地重新分配任务到其他节点上。 4. 水平扩展:Storm支持水平扩展。用户可以根据需要增加更多的工作节点来提高整个系统的处理能力,这使得Storm非常适合于需要高吞吐量和可扩展性...

    Storm实战培训教程.pptx

    - Storm的另一个关键特性是其可扩展性,支持水平扩展,能够在多台机器、多个进程和线程间并行处理大量数据。 2. Storm体系结构: - Storm的核心组件包括Topology、Supervisor、Worker和Nimbus。Topology定义了...

    storm实时数据分析 用到的技术分析

    工作进程负责执行实际的数据处理任务,而任务(task)是在工作进程中的线程,执行具体的Spout或Bolt任务。 4. Storm内部运行机制:Storm通过Zookeeper集群来协调节点之间的工作,并保证任务分配的高效和可靠性。...

    storm集群的搭建-java示例代码.zip

    Nimbus负责任务调度和资源分配,Supervisor负责管理其上的Worker进程,而Spout和Bolt则构成了拓扑结构,定义了数据的流入和流出。 在搭建Storm集群的过程中,我们需要以下步骤: 1. **环境准备**:确保安装了Java ...

    storm深入学习.pdf

    Executor是Storm中执行Bolt和Spout的线程,worker是JVM进程,负责运行一个或多个executor。Task是Storm中的最小执行单元,每个Task执行一个特定的Bolt或Spout的实例。优化Storm性能时,需要关注如何合理配置executor...

    Storm深入学习.pdf

    - **Executor、Worker 和 Task**:Executor 是在 Worker 进程中执行的线程,负责处理 Tuple。Worker 是 JVM 实例,可以包含多个 Executor。Task 是执行特定计算逻辑的基本单元,分配给 Executor 执行。 了解这些...

    藏经阁-RESOURCE AWARE SCHEDULING IN APACHE STORM.pdf

    Executors是Worker进程中spawn的线程,执行Component的逻辑。Worker Process是Storm.spawn的进程,可以运行一个或多个Executors。 Storm的调度机制包括默认的轮询调度策略和多租户调度策略。默认调度策略使用naïve...

Global site tag (gtag.js) - Google Analytics