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.建立数据传输的缓冲区.在通信连接没有建立之前把发送的数据缓存起来.数据发送方可以在连接建立之前发送消息,而不需要等连接建立起来, ...
随机推荐
- 数据结构-二叉树(应用篇)-之二叉搜索树 C和C++的实现
一.概念 二叉搜索树(Binary Sort Tree/Binary Search Tree...),是二叉树的一种特殊扩展.也是一种动态查找表. 在二叉搜索树中,左子树上所有节点的均小于根节点,右子 ...
- ES6小点心第二弹——底部浮现弹窗
小点心,顾名思义,开箱即食,拿来即用. 献上第二个小点心:SlidePopup. GitHub 在线演示 GitHub 上欢迎大家来找茬^_^ 前端朋友们,今天要介绍的这款小点心牛B了.相信是个前端都 ...
- java 多线程 Callable -- 分段处理一个大的list 然后再合并结果
本文代码参考 http://bbs.csdn.net/topics/391070227?page=1 下面是贴出的代码: public void dealListWithMutiThread(){ L ...
- 循序渐进之Spring AOP(4) - Introduction
前面描述的几种增强(Advice)都是在目标方法范围内织入,而引介(Introduction)不同,直接在类级别上添加目标未实现的接口方法. 在spring中可以通过扩展DelegatingIntro ...
- deeplearning.ai 构建机器学习项目 Week 2 机器学习策略 II 听课笔记
1. 误差分析(Error analysis) 误差分析的目的是找到不同误差源的比重,从而指引我们接下来往哪个方向努力改进.NG建议手工统计随机100个错误的误差源,比如对于猫分类器,错误的照片可能是 ...
- hdu_4497GCD and LCM(合数分解)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 GCD and LCM Time Limit: 2000/1000 MS (Java/Other ...
- Windows7下远程操作虚拟机
⒈分别查看两台物理机的IP地址 ⒉查看虚拟机的IP地址 ⒊两台物理机和虚拟机必须都要处于同一网段,上图中我已经做过了修改(每个节点都要修改,修改见步骤6 ) ⒋打开VMware,编辑虚拟机设置(每个节 ...
- MVC编程实例----简易电子商务网站(一)
一.总体概览.规划 本文将会创建一个基本的电子商务网站.由于电子商务网站的基本功能都是差不多的,此处省去了需求分析等工作,直接总结出结论.分为4个基本功能: 商品浏览 会员功能 购物车 订单结账 其中 ...
- Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页 [root@new-host ~]# curl -d 1=1 http://www.sohu.com/inde ...
- NGINX 配置404错误页面转向
什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面.404页面的默认内容和具体的服务器有关.如果后台用的是 ...