一、前述

为了提高Storm的并行能力,通常需要设置并行。

二、具体原理

1. Storm并行分为几个方面:

Worker – 进程
一个Topology拓扑会包含一个或多个Worker(每个Worker进程只能从属于一个特定的Topology)
这些Worker进程会并行跑在集群中不同的服务器上,即一个Topology拓扑其实是由并行运行在Storm集群中多台服务器上的进程所组成

Executor – 线程
Executor是由Worker进程中生成的一个线程
每个Worker进程中会运行拓扑当中的一个或多个Executor线程
一个Executor线程中可以执行一个或多个Task任务(默认每个Executor只执行一个Task任务),但是这些Task任务都是对应着同一个组件(Spout、Bolt)。

Task
实际执行数据处理的最小单元
每个task即为一个Spout或者一个Bolt

注意:

Task数量在整个Topology生命周期中保持不变,Executor数量可以变化或手动调整
(默认情况下,Task数量和Executor是相同的,即每个Executor线程中默认运行一个Task任务)

2.在程序中具体设置:

设置Worker进程数
Config.setNumWorkers(int workers)

设置Executor线程数
TopologyBuilder.setSpout(String id, IRichSpout spout, Number parallelism_hint)
TopologyBuilder.setBolt(String id, IRichBolt bolt, Number parallelism_hint)
:其中, parallelism_hint即为executor线程数

设置Task数量
ComponentConfigurationDeclarer.setNumTasks(Number val)

例:
Config conf = new Config() ;
conf.setNumWorkers(2);//设置worker数

TopologyBuilder topologyBuilder = new TopologyBuilder();
topologyBuilder.setSpout("spout", new MySpout(), 1);//设置线程数
topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)
               .setNumTasks(4)//设置总共的task数这个Bolt任务的
               .shuffleGrouping("blue-spout);

3.案例详解

4.Rebalance – 再平衡
即,动态调整Topology拓扑的Worker进程数量、以及Executor线程数量

支持两种调整方式:
1、通过Storm UI
2、通过Storm CLI(一般用这个!!!)

通过Storm CLI动态调整:
例:storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
将mytopology拓扑worker进程数量调整为5个
“ blue-spout ” 所使用的线程数量调整为3个
“ yellow-bolt ”所使用的线程数量调整为10个

PS:当调整的task或者worker进程超过集群配置时,还是按集群最大配置运行。

 

转载于:https://www.cnblogs.com/LHWorldBlog/p/8353278.html

【Storm篇】--Storm并发机制相关推荐

  1. Storm程序的并发机制原理总结

    文章目录 目录 前言: 1.概念 2.配置并行度 总结: 目录 前言: 为了在以后的实践中提高Storm程序执行的效率,我们还是有必要了解下对应的Storm程序的并发机制.(哈哈,虽然以博主小菜鸟的水 ...

  2. Strom程序的并发机制,配置并行度(代码实现)、动态改变并行度,local or shuffle分组,分组的概念以及分组类型

    1.Storm程序的并发机制 1.1.概念  Workers (JVMs): 在一个物理节点上可以运行一个或多个独立的JVM 进程.一个Topology可以包含一个或多个worker(并行的跑在不同 ...

  3. Storm 05_Storm并发机制通信机制

    一.Storm并发机制 Worker processes Executors (threads) Tasks Worker – 进程 一个Topology拓扑会包含一个或多个Worker(每个Work ...

  4. ack是什么,如何使用Ack机制,如何关闭Ack机制,基本实现,STORM的消息容错机制,Ack机制

    1.ack是什么 ack 机制是storm整个技术体系中非常闪亮的一个创新点. 通过Ack机制,spout发送出去的每一条消息,都可以确定是被成功处理或失败处理, 从而可以让开发者采取动作.比如在Me ...

  5. 深入学习Java多线程——并发机制底层实现原理

    2019独角兽企业重金招聘Python工程师标准>>> Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执 ...

  6. Go语言并发机制初探

    Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序.Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处理器资源.这篇文章学习 g ...

  7. Java并发机制的底层实现原理

    Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令.本章我们将 ...

  8. 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析

    前言:阅读笔记 storm和hadoop集群非常像.hadoop执行mr.storm执行topologies. mr和topologies最关键的不同点是:mr执行终于会结束,而topologies永 ...

  9. Java高并发编程(二):Java并发机制的底层实现机制

    Java代码在编译后会变成Java字节码,字节码在之后被类加载机制加载到JVM中,JVM执行字节码,最终需要转换为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令. ...

  10. Java并发机制底层实现原理-volatile

    章节目录 volatile的实现原理与应用 1.volatile的实现原理与应用 Java source code->Java class->JVM->汇编指令->cpu执行 ...

最新文章

  1. 斐波那契算法举例(iterative Fibonacci algorithm)
  2. 一个页面标题和过滤输出的解决方案(下)
  3. 计算机电力英语翻译,电力专业英语阅读与翻译..doc
  4. 支持10秒自毁的新芯片
  5. Qt网络编程-简易版UDP单播通信入门Demo(3)
  6. mysql 设置主键命令_MySQL常用命令
  7. Android paint 效果研究
  8. 数据库中外连接的三种形式(左连接,右连接,全连接)
  9. 倍福RS232模块EL6002使用教程及注意事项
  10. 怎么用手机修改图片大小?在线修改图片的方法?
  11. 图像加密-安全性分析
  12. 机器人学关于SE(3)、se(3)、SO(3)、so(3)的理解
  13. 深入浅出Linux操作系统指令与目录结构(二)
  14. Debian配置SMB服务-lnxserver3
  15. 开源=安全?RVN盗币事件复盘
  16. 【儿童节】2018 下半年 Java 后端工程师的书单推荐
  17. 人因工程记忆广度测试改进
  18. 5、OpenGL入门 贴图叠加【Win32+VS2019】亲测代码
  19. mac 装 Flash Player的时候别忘记装 PPAPI插件版本的
  20. android获取系统蓝牙版本,[Android O] 蓝牙设备默认名称获取

热门文章

  1. Dubbo简介与基本概念
  2. Java中获取实体List中某时间属性离当前时间最近的实体类的某一属性
  3. Python中使用PIL快速实现二值图
  4. Column 'Status' in where clause is ambiguous
  5. 软考-信息系统项目管理师-项目人力资源管理
  6. 信息系统项目管理师之风险管理
  7. amd显卡显存测试程序_AMD发布Radeon 6000系列显卡:能耗比大提升
  8. 赋能数字化财富管理转型,神策数据推出全新证券行业解决方案
  9. python:列表生成器
  10. Android 权限问题