Storm Topology Parallelism
Understanding the Parallelism of a Storm Topology
What makes a running topology: worker processes, executors and tasks
在一个Strom集群中,实际运行一个topology有三个主要的实体
- Worker processes
- Executors (threads)
- Tasks
下面是一张草图简单说明他们之间的关系:

A worker process executes a subset of a topology.
一个worker进程属于一个特定的topology并且可能运行一个或者多个executors
一个运行中的topology由运行在集群中的许多机器上的这样的进程组成
一个executor是被一个worker进程启动的一个线程。它可能运行一个或多个任务。
一个task执行实际的数据处理——在你的代码中实现的每一个spout或bolt执行许多任务。一个组件的任务数量总是不变的,这是自始至终贯穿整个topology的,但是一个组件的executors(threads)的数量是可以随时改变的。也就是说,下面这个表达式总是true:#threads ≤ #tasks。默认情况下,task的数量和executor的数量是相等的,也就是说每个线程运行一个任务。
Configuring the parallelism of a topology
注意,Storm中的术语"parallelism"也被叫做parallelism hint,表示一个组件初始的executor(threads)数量。
在这篇文档中我们将用"parallelism"来描述怎样配置executor的数量,怎样配置worker进程的数量,以及task的数量。
配置的方式有多种,它们之间的优先级顺序为:defaults.yaml < storm.yaml < topology-specific configuration < internal component-specific configuration < external component-specific configuration

下面是一个例子

上面这段代码片段配置了一个叫green-bolt的Bolt,初始数量为2个executors并且关联4个task。也就是说,每个executor量运行2个task。
如果你没有明确配置task的数量,那么Strom将用默认的配置来运行,即:每个executor运行一个task。
Example of a running topology
下面这幅插图显示了一个简单的topology。这个topology由三个组件组成:一个叫"BlueSpout"的spout和两个bolt,分别叫"GreenBolt"和"YellowBolt"。

代码如下

How to change the parallelism of a running topology

补充一个Java API

参考 http://storm.apache.org/releases/1.1.1/Understanding-the-parallelism-of-a-Storm-topology.html
Storm Topology Parallelism的更多相关文章
- STORM_0005_第一个非常简单的storm topology的提交运行
配置好storm之后就可以开始在eclipse里面写topology了. 下面是我在网上搜到的一个简单的例子,我按照自己的理解注释了一下. 第一步,创建mvn工程 这是pom.xml文件 <pr ...
- java.lang.ClassNotFoundException: org.apache.storm.topology.IRichSpout
java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout at java.lang.Class.getDeclaredM ...
- Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.IRichSpout
1:初次运行Strom程序出现如下所示的错误,贴一下,方便脑补,也希望帮助到看到的小伙伴: 错误如下所示,主要问题是刚开始使用maven获取jar包的时候需要写<scope>provide ...
- Storm Topology 提交 总结---Kettle On Storm 实现
一,目的 在学习的过程中,需要用到 PDI---一个开源的ETL软件.主要是用它来设计一些转换流程来处理数据.但是,在PDI中设计好的 transformation 是在本地的执行引擎中执行的,(参考 ...
- How to pass external configuration properties to storm topology?
How to pass external configuration properties to storm topology? I want to pass some custom configur ...
- Storm本地启动拓扑报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout
问题描述: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology ...
- storm ——Understanding the Parallelism of a Storm Topology
http://www.michael-noll.com/blog/2012/10/16/understanding-the-parallelism-of-a-storm-topology/ 这篇文章好 ...
- Storm系列之一——Storm Topology并发
1.是什么构成一个可运行的topology? worker processes(worker进程),executors(线程)和tasks. 一台Storm集群里面的机器可能运行一个或多个worker ...
- Storm Topology及分组原理
Storm的通信机制,需要满足如下一些条件以满足Storm的语义. 1.建立数据传输的缓冲区.在通信连接没有建立之前把发送的数据缓存起来.数据发送方可以在连接建立之前发送消息,而不需要等连接建立起来, ...
随机推荐
- replace into 浅析之一
一 介绍 在笔者支持业务过程中,经常遇到开发咨询replace into 的使用场景以及注意事项,这里做个总结.从功能原理,性能和注意事项上做个说明.二 原理2.1 当表中存在主键但是不存在唯一建的 ...
- 闲来无事,把node又拾起来看看
处在国企单位,整天闲的要死要死的,民族的花朵都快枯萎了 哎呀呀,打起精神.......早睡早起,多看书...开始进入苦读状态,苦练武功,争取有朝一日报效祖国...哈哈 开玩笑的 开始看书吧 记得N ...
- 【批处理学习笔记】第十一课:常用DOS命令(1)
[ 文件夹管理 ]cd 显示当前目录名或改变当前目录.md 创建目录.rd 删除一个目录.dir 显示目录中的文件和子目录列表.tree 以图形显示驱动器或路径的文件夹结构.path 为可执行文件显示 ...
- ECJTUACM16 Winter vacation training #5 题解&源码
A------------------------------------------------------------------------------------------- 题目链接:ht ...
- Matrix Chain Multiplication(表达式求值用栈操作)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1082 Matrix Chain Multiplication Time Limit: 2000/100 ...
- 什么是 core dump ? 以及如何使用gdb对 core dumped 进行调试
什么是core dump?(down = 当) core的意思是:内存,dump的意思是:扔出来.堆出来. 开发和使用linux程序时,有时程序莫名其妙的down掉了,却没有任何的提示(有时候会提示c ...
- cin与cout详解
输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。C++的输出和输入是用" ...
- SpringMVC框架学习笔记(6)——拦截器
SpringMVC拦截器需要实现接口HandlerInterceptor 有3个方法,分别在请求处理前.请求处理后和在DispatcherServlet处理后执行 实现代码: package inte ...
- Spring框架学习笔记——各种异常、报错解决
一.部分标签无法使用 原因:没有util导入命名空间 解决方法:在bean配置文件头部引用命名空间 <?xml version="1.0" encoding="UT ...
- 完整CentOS搭建OpenVPN服务详细教程
一.介绍 1.定义 ① OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,最早由James Yonan编写.OpenVPN允许创建的VPN使用公开密钥.电子证书.或者用户名/密码来进行身份验证 ...