一.Storm的并行介绍

  并行意味着多个任务在不同的节点上,且每个节点都可独立运行,并且相互之间没有依赖。

  而在storm上,storm提交的jobs(任务)通过nimbus分发到多个supervisor上,jobs的执行都是通过supervisor来运行和执行的。

  1.worker: 代表一个进程

    在storm的配置文件storm.yml中supervisor.slots.port配置的个数,可以看做一个worker就对应一台机器上配置的slot。nimbus会把任务分发到不同的supervisor上,所有提交的job都是通过supervisor来执行和运行的。一个topology有多个spout bolt构成,一个work在执行时可能执行了一个topology中的spout 或者bolt,总之,work是一个进程级别的,由supervisor负责管理、启动、监控这个进程,然后再将运行后的数据反馈给nimbus。

  2..executor:代表一个线程

    每个executor只运行topology下的spout bolt中的一个或者多个实例,executor可以被动态的修改

    storm提交的任务通过nimbus分发到不同的supervisor上,通过不同的supervisor来运行和执行任务,一个topology 由多个spout 或多个bolt 组成。

    在supervisor的存在多个worker,而每一个worker可以执行topology,topology包含了spout bolt

  3.task在storm是一个最小的粒度单元

    其实可以把task理解成线程的run的方法体,每一个spout bolt都会生成一个实例由task去执行,一旦task被定义后,是不能被改变的。

    当一个或多个executor执行一个或多个task实例时可以称为并行。

二.Storm并行度的算法   

  executor的算法: n [worker数量] + n[spout并行系数] + n[bolt并行系数]

    ack是系统级运行线程,ack数量与worker数量相等,也相当于一个task任务

  task的算法:

    n[spout数量] + n[bolt数量] + n[worker数量]

三.Storm并行度的设置

Configure Work    #进程的设置
Config config = new Config();
config.setNumWorkers(3);
Configure executor  #线程的设置
builder.setSpout(“SampleSpout”,new SampleSpout(),2);
builder.setBolt(“SampleBolt”,new SampleBolt(),4).shuffeGrouping(“SampleSpout”);
Configure Task    #task的设置
builder.setSpout(“sampleSpout”,new SampleSpout(),2).setNumTasks(4);

四.Storm 的rebalance

  在我们配置完一些并行度的参数后,是不能再去修改,尤其是task的数量是不能更改的,但是可以通过storm 的rebalance 来调整work的数量以及spout 和bolt的数量

  命令:

storm rebalance [topologyName] -n [NumberOfWorkers] -e [spout]=[NumberOfExecutors]  -e[Bolt1]=[NumberOfExecutors] [Bolt2]=[NumberOfExecutors]

storm并行度核心概念介绍剖析的更多相关文章

  1. webpack的四个核心概念介绍

    前言 webpack 是一个当下最流行的前端资源的模块打包器.当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后 ...

  2. ElasticSearch入门及核心概念介绍

      Elasticsearch研究有一段时间了,现特将Elasticsearch相关核心知识和原理以初学者的角度记录下来,如有不当,烦请指正! 0. 带着问题上路——ES是如何产生的? (1)思考:大 ...

  3. Apache Maven的入门使用之常用操作以及核心概念介绍(2)

    我们接着上篇文章,来继续介绍Maven中几个核心的概念: POM (Project Object Model) Maven 插件 Maven 生命周期 Maven 依赖管理 Maven 库 POM ( ...

  4. Spring Security核心概念介绍

    Spring Security是一个强大的java应用安全管理库,特别适合用作后台管理系统.这个库涉及的模块和概念有一定的复杂度,而大家平时学习Spring的时候也不会涉及:这里基于官方的参考文档,把 ...

  5. Maven入门-2.Maven一些核心概念介绍

    1.Maven仓库2.Maven坐标3.Maven插件和目标4.Maven生命周期4.1 clean:清理项目4.2 default:构建项目(重要)4.3 site:建立项目站点 1.Maven仓库 ...

  6. Knative 核心概念介绍:Build、Serving 和 Eventing 三大核心组件

    Knative 主要由 Build.Serving 和 Eventing 三大核心组件构成.Knative 正是依靠这三个核心组件,驱动着 Knative 这艘 Serverless 巨轮前行.下面让 ...

  7. 3.云原生之Docker容器三大核心概念介绍

    转载自:https://www.bilibili.com/read/cv15181760/?from=readlist docker search --no-trunc=false [镜像名称] #搜 ...

  8. Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

    由浅入深,主要介绍maven的用途.核心概念(Pom.Repositories.Artifact.Build Lifecycle.Goal).用法(Archetype意义及创建各种项目).maven常 ...

  9. [转]Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

    转自:http://www.trinea.cn/android/maven/ 两年半前写的关于Maven的介绍,现在看来都还是不错的,自己转下.写博客的一大好处就是方便自己以后查阅,自己总结的总是最靠 ...

随机推荐

  1. bzoj3508: 开灯

    题目链接 题解 设\(b[i]=a[i]\ xor\ a[i+1]\) 我们可以发现,修改只会改变\(b[l-1]\)和\(b[r]\) 然后发现\(b[i]=1\)的点最多\(2*k\)个 状压\( ...

  2. _cdecl与_stdcall区别

    _cdecl与_stdcall是最常用的的两种函数调用修饰,区别在于函数返回时,清理栈(恢复栈平衡)是caller做还是被调函数做. : _cdecl int add1(int a, int b) : ...

  3. thinkphp5 大量数据批量插入数据库的解决办法

    对于数据量很小,怎么玩都是可以的. but!!! 如果有几十万或者百万级别的数据,该怎么处理,请往下面看

  4. 2019.7.9 校内测试 T2 极值问题

    这一次是交流测试?边交流边测试(滑稽 极值问题 乍一看这是一道数学题,因为1e9的数据让我暴力的心退却. 数学又不好,不会化简式子嘞,咋办? 不怕,咱会打表找规律.(考场上真的是打表找出了规律,打表打 ...

  5. JVM——垃圾回收

    目录: 如何判断垃圾是否回收? 引用计数法 可达性分析算法 四种引用 引用队列 垃圾回收算法 标记清除算法 复制算法 标记整理算法 分代垃圾回收 新生代 老年代 Minor GC 和 Full GC的 ...

  6. linux 下使用dd制作启动U盘 安装linux

    1.找到U盘: sudo fdisk -l 2.卸载U盘:(这个不是必须,如果没有挂载u盘,可以省略) sudo umount /dev/sdb1 3.建立文件系统,格式化U盘: sudo mkfs. ...

  7. 异步机制 - BindIoCompletionCallback

    直接上代码 VOID CALLBACK test_io_completion_routine( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, ...

  8. MapReduce shuffle的过程分析

    shuffle阶段其实就是多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点上. Map端: 1.在map端首先接触的是InputSplit,在InputSplit中含有D ...

  9. spaCy 第二篇:语言模型

    spaCy处理文本的过程是模块化的,当调用nlp处理文本时,spaCy首先将文本标记化以生成Doc对象,然后,依次在几个不同的组件中处理Doc,这也称为处理管道.语言模型默认的处理管道依次是:tagg ...

  10. 在testrpc以太坊测试环境部署智能合约

    2018年03月13日 09:20:54 思无邪-machengyu 阅读数 2683   版权声明:本文为博主原创文章,转载请务必注明出处,否则追究法律责任 https://blog.csdn.ne ...