Understanding the Parallelism of a Storm Topology


What makes a running topology: worker processes, executors and tasks

在一个Strom集群中,实际运行一个topology有三个主要的实体

  1. Worker processes
  2. Executors (threads)
  3. Tasks

下面是一张草图简单说明他们之间的关系:

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的更多相关文章

  1. STORM_0005_第一个非常简单的storm topology的提交运行

    配置好storm之后就可以开始在eclipse里面写topology了. 下面是我在网上搜到的一个简单的例子,我按照自己的理解注释了一下. 第一步,创建mvn工程 这是pom.xml文件 <pr ...

  2. java.lang.ClassNotFoundException: org.apache.storm.topology.IRichSpout

    java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout at java.lang.Class.getDeclaredM ...

  3. Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.IRichSpout

    1:初次运行Strom程序出现如下所示的错误,贴一下,方便脑补,也希望帮助到看到的小伙伴: 错误如下所示,主要问题是刚开始使用maven获取jar包的时候需要写<scope>provide ...

  4. Storm Topology 提交 总结---Kettle On Storm 实现

    一,目的 在学习的过程中,需要用到 PDI---一个开源的ETL软件.主要是用它来设计一些转换流程来处理数据.但是,在PDI中设计好的 transformation 是在本地的执行引擎中执行的,(参考 ...

  5. 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 ...

  6. Storm本地启动拓扑报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout

    问题描述: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology ...

  7. storm ——Understanding the Parallelism of a Storm Topology

    http://www.michael-noll.com/blog/2012/10/16/understanding-the-parallelism-of-a-storm-topology/ 这篇文章好 ...

  8. Storm系列之一——Storm Topology并发

    1.是什么构成一个可运行的topology? worker processes(worker进程),executors(线程)和tasks. 一台Storm集群里面的机器可能运行一个或多个worker ...

  9. Storm Topology及分组原理

    Storm的通信机制,需要满足如下一些条件以满足Storm的语义. 1.建立数据传输的缓冲区.在通信连接没有建立之前把发送的数据缓存起来.数据发送方可以在连接建立之前发送消息,而不需要等连接建立起来, ...

随机推荐

  1. 7、ABPZero系列教程之拼多多卖家工具 修改注册功能

    本篇开始进入重头戏,之前的几篇文章都是为了现在的功能作准备.前面教程已经讲到修改User表结构,接下来就需要修改注册逻辑代码. 注册页面 修改Register.cshtml,备注如下代码: 文件路径: ...

  2. js 抓取屏幕宽度设置字体大小 rem

    var doc = window.document var docEl = doc.documentElement var tid function refreshRem () { var width ...

  3. eclipse自动提示功能没了的解决方法

    eclipse没有自动提示功能,也就是当一个对象居然点不出他的相关方法.后来网上搜索了下,成功的 办法是. 1.我window->Preferences->Java->Editor- ...

  4. Gym 100952G&&2015 HIAST Collegiate Programming Contest G. The jar of divisors【简单博弈】

    G. The jar of divisors time limit per test:2 seconds memory limit per test:64 megabytes input:standa ...

  5. 我的第一个网页制作:Hello World!

    这是我花了一个晚上搞的一个Hello World!也只会Hello World!慢慢学,要努力成为大神(黑客专家) 下面给出HTML代码: <html> <head> < ...

  6. 机器学习笔记5-Tensorflow高级API之tf.estimator

    前言 本文接着上一篇继续来聊Tensorflow的接口,上一篇中用较低层的接口实现了线性模型,本篇中将用更高级的API--tf.estimator来改写线性模型. 还记得之前的文章<机器学习笔记 ...

  7. sass 安装

    最近在安装sass的过程中遇到 了一下问题,总结一下安装过程. windows下sass的安装是依赖于ruby的,所以要先安装rubyinstaller,下载地址:https://rubyinstal ...

  8. Logger之Logger.getLogger(CLass)技巧代替system.out.print

    ---恢复内容开始--- 尊重原创:http://www.cnblogs.com/zxf330301/p/5876117.html 之前一直在使用System.out.println()来调试.但是用 ...

  9. 前端自动化-----gulp详细入门(转)

    简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码 ...

  10. PhpStorm常用的一些快捷键

    Ctrl + G  :  跳到当前打开文件的行,输入格式(行数:列数)Ctrl + E  : 打开最近编辑的文件列表Ctrl + P  : 显示函数的参数信息Ctrl + Q  : 快速打开函数的说明 ...