Storm集群中执行的各种组件及其并行
一、Storm中执行的组件
- Nodes(machines):集群中的节点,就是这些节点一起工作来执行Topology。
- Workers(JVMs):一个worker就是一个独立的JVM进程。每一个节点都能够通过配置执行一个或多个workers,一个Topology能够指定由多少个workers来执行。
- Executors(threads):一个worker JVM中执行的线程。一个worker进程能够执行一个或多个executor线程。一个Executor能够执行多个tasks,Storm默认一个每一个executor分配一个task。
- Tasks(bolt/spout实例):Tasks就是spouts和bolts的实例,它详细是被executor线程处理的。

二、Storm中的并行(以WordCountTopology为例)
2.1 为Topology添加workers
- 描写叙述:在集群中为topology创建多少个工作进程
- 配置选项: TOPOLOGY_WORKERS
- 在代码中配置:
config.setNumWorkers(2);
注意:在LocalMode下无论设置几个workers,终于都仅仅有一个worker JVM进程。
2.2 配置executors和tasks
2.2.1 设置executor(thread)数量
- 描写叙述:每一个组件产生多少个Executor
- 配置选项:?
- 在代码中配置:
- TopologyBuilder#setSpout()
- TopologyBuilder#setBolt()
- Note that as of Storm 0.8 the
parallelism_hintparameter now specifies the initial number of executors (not tasks!) for that bolt.
2.2.2 设置task的数量
- 描写叙述:每一个组件创建多少个task
- 配置选项: TOPOLOGY_TASKS
- 在代码中配置:
).fieldsGrouping(SPLIT_BOLT_ID, newFields("word"));
假设一開始分配2个workers,则Topology的执行情况例如以下图所看到的:
三、一个topology的样例
topologyBuilder.setSpout(“blue-spout”, new BlueSpout(), 2); // set parallelism hint to 2
topologyBuilder.setBolt(“green-bolt”, new GreenBolt(), 2) .setNumTasks(4) .shuffleGrouping(“blue-spout”);
topologyBuilder.setBolt(“yellow-bolt”, new YellowBolt(), 6) .shuffleGrouping(“green-bolt”);
- TOPOLOGY_MAX_TASK_PARALLELISM: 这个參数能够控制一个组件上Executor的最大数量。它通经常使用来在本地模式測试topology的最大线程数量。当然我们也能够在代码中设置: Config#setMaxTaskParallelism().
四、怎样改变一个执行topology中的Parallelism
- 通过Storm web UI来均衡
- 通过CLI tool storm 来均衡
# Reconfigure the topology “mytopology” to use 5 worker processes, # the spout “blue-spout” to use 3 executors and # the bolt “yellow-bolt” to use 10 executors.
Storm集群中执行的各种组件及其并行的更多相关文章
- Storm官方文档翻译之在生产环境集群中运行Topology
在进群生产环境下运行Topology和在本地模式下运行非常相似.下面是步骤: 1.定义Topology(如果使用Java开发语言,则使用TopologyBuilder来创建) 2.使用StormSub ...
- Storm集群组件和编程模型
Storm工作原理: Storm是一个开源的分布式实时计算系统,常被称为流式计算框架.什么是流式计算呢?通俗来讲,流式计算顾名思义:数据流源源不断的来,一边来,一边计算结果,再进入下一个流. 比 ...
- Storm集群安装部署步骤【详细版】
作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2012/11/30/how ...
- Storm集群安装详解
storm有两种操作模式: 本地模式和远程模式. 本地模式:你可以在你的本地机器上开发测试你的topology, 一切都在你的本地机器上模拟出来; 远端模式:你提交的topology会在一个集群的机器 ...
- Storm入门教程 第三章Storm集群安装部署步骤、storm开发环境
一. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...
- Storm集群安装部署步骤
本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章节以"注意事项"的形式给出. 1. Sto ...
- storm集群架构
一.storm何许人也? Storm 是Twitter的一个开源框架.Storm一个分布式的.容错的实时计算系统,它被托管在GitHub上,遵循 Eclipse Public License 1.0. ...
- Storm 集群
Apache Storm Storm是一个分布式的,可靠的,容错的数据流处理系统.Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt,bolt要么把数据保存到某种存 ...
- storm集群相关资料
1. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...
随机推荐
- three.js 源代码凝视(十)Math/Line3.js
商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 - 本博客专注于 敏捷开发 ...
- c语言,结构体里面的函数
以linux-3.2内核代码为例,结构体里面的函数的用法: 例,在某驱动文件中,定义了一个平台设备驱动: static struct platform_driver s3c24xx_led_drive ...
- Linux入门:文件权限、用户、用户组(比较清楚)
单个文件名或目录名长度不超过255字符: 文件或目录的绝对路径长度不超过4096字符: 一.文件所有者与用户组 一个文件有很多属性,包括文件类型.文件权限.文件隐藏权限.文件所有者.用户组 ...
- 基于visual Studio2013解决C语言竞赛题之1023判断排序
题目 解决代码及点评 /* 23. 有10个两位整数,把这些数作以下变化,如果它是素数, 则把它乘以2,若它是偶数则除以2,其余的数减1, 请将变化后的10个数按从小到大 ...
- properties 文件的中文转ASCII
在软件开发过程中,经常要涉及到多语言支持问题,常用的解决方案是将各个语言文字放到properties文件中,但中文是需要转为ASCII的 .那么如何将中文进行转换呢,下面就为你列举几种比较方便的方法 ...
- PEM文件格式具体解析
PEM文件格式存档 Author:Roson sun sunxiao@tomonline-inc.com Time:2006-4-11 1. 描写叙述: Openssl使用PEM(RFC 1421- ...
- NGUI: Documentation
Video Tutorials Basic Tutorial (v.2.5.0+) SD & HD atlas switching (advanced) Packed Font (advanc ...
- Android SDK 环境变量配置(Windows)
Android 开发需要进行adb的配置, 这里使用的是 adt-bundle-windows-x86_64-20140321, 里面捆绑的有 eclipse ,不需要再进行 其他的配置,直接下载解压 ...
- input在苹果浏览器下变成圆角的解决方案
复制代码代码如下: .form-actions input{ ... -webkit-appearance: none; } 更新到iPhone一看,真爽,问题解决了.
- vector中的find
vector中的find - huangyimin的专栏 - 博客频道 - CSDN.NET vector中的find 2011-01-13 09:57 11334人阅读 评论(0) 收藏 举报 ve ...