Storm系列之一——Storm Topology并发
1、是什么构成一个可运行的topology?
worker processes(worker进程),executors(线程)和tasks。
一台Storm集群里面的机器可能运行一个或多个worker进程,一个worker进程运行一个特定topology的executors。
一个worker进程可能运行一个或多个executors。每个executor是一个线程。一个executor运行同一个spout或者bolt的一个或多个task。
一个task完成具体的数据处理。
一个worker进程执行一个topology的子集。一个worker进程属于一个指定topology并且可以运行属于一个topology的一个或多个executors。一个topology由很多这样的worker进程运行在Storm集群的很多机器上。
一个task完成具体的数据处理—一个组件的任务数在整个topology的生命周期内是不变的,但是一个组件的executors数量在topology的生命周期内是可以变的。#threads <= #tasks。默认情况下,tasks的数量被设置成与executors的数量相等。 Storm将会在每个executor里面运行一个task。
2、配置一个topology的parallelism。
Storm里面的"parallelism"指parallelism hint, 它代表一个组件的executor的初始数量。
worker进程的数量:一个topology拥有的worker进程的数量。配置文件里面设置:TOPOLOGY_WORKERS 代码里面设置:Config#setNumWorkers
executors的数量:每个组件拥有的executors数量。 代码里面配置:TopologyBuilder#setSpout() TopologyBuilder#setBolt() parallelism_hint指出一个组件的初始executors的数量。
tasks的数量:每个组件创建多少task。 配置文件里面配置:TOPOLOGY_TASKS 代码里面配置:ConponentConfigurationDeclare#setNumTasks()。
另外,TOPOLOGY_MAX_TASKS_PARALLELISM限定了单个组件可以产生的executors的最大数量。
3、改变一个topology的parallelism。
rebalanceing:这是Storm的一个漂亮的特性。worker进程的数量和executor的数量可以动态增加或减少,而不需要重启集群或者重启topology。
两种方式:1、用Storm web UI 2、CLI工具
## 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 rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
Storm系列之一——Storm Topology并发的更多相关文章
- Storm系列一: Storm初步
初入Storm 前言 学习Storm已经有两周左右的时间,但是认真来说学习过程确实是零零散散,遇到问题去百度一下,找到新概念再次学习,在这样的一个循环又不成体系的过程中不断学习Storm. 前人栽树, ...
- Storm编程入门API系列之Storm的Topology的stream grouping
概念,见博客 Storm概念学习系列之stream grouping(流分组) Storm的stream grouping的Shuffle Grouping 它是随机分组,随机派发stream里面的t ...
- Storm编程入门API系列之Storm的Topology多个Workers数目控制实现
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 继续编写 StormTopologyMoreWorker.java ...
- Storm编程入门API系列之Storm的Topology多个Executors数目控制实现
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Wor ...
- Storm编程入门API系列之Storm的Topology多个tasks数目控制实现
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Wor ...
- Storm 系列(二)实时平台介绍
Storm 系列(二)实时平台介绍 本章中的实时平台是指针对大数据进行实时分析的一整套系统,包括数据的收集.处理.存储等.一般而言,大数据有 4 个特点: Volumn(大量). Velocity(高 ...
- Storm系列(三):创建Maven项目打包提交wordcount到Storm集群
在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的S ...
- Storm系列(二):使用Csharp创建你的第一个Storm拓扑(wordcount)
WordCount在大数据领域就像学习一门语言时的hello world,得益于Storm的开源以及Storm.Net.Adapter,现在我们也可以像Java或Python一样,使用Csharp创建 ...
- Storm系列(一):搭建dotNet开发Storm拓扑的环境
上篇博客比较了目前流行的计算框架特性,如果你是 Java 开发者,那么根据业务场景选择即可:但是如果你是 .Net 开发者,那么三者都不能拿来即用,至少在这篇文章出现之前是如此.基于上篇文章的比较发现 ...
随机推荐
- server端推送消息机制
推送技术相关请参加WIKI: https://zh.wikipedia.org/wiki/%E6%8E%A8%E9%80%81%E6%8A%80%E6%9C%AF 场景: 监控系统:后台硬件温度.电压 ...
- json和字符串/数组/集合的互相转换の神操作总结
一:前端字符串转JSON的4种方式 1,eval方式解析,恐怕这是最早的解析方式了. function strToJson(str){ var json = eval('(' + str + ')') ...
- 用VS2010编C#程序扫盲
0. Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应 ...
- 【LAMP】在Debian系linux下安装LAMP
一.安装基本的编译环境 apt-get install build-essential 二.安装MySQL apt-get install mysql-server 三.安装Apache apt-ge ...
- IE7/8浏览器都不能显示PNG格式图片
方法一:重新注册pngfilt.dll文件.这个方法是PNG格式开发商官方网站上的推荐方法之一,抱着试试的想法按网站推荐的方法试了,一试成功.方法如下:使用 开始->运行,在运行输入框中输入 “ ...
- sp_addlinkedserver 方法应用
EXEC sp_addlinkedserver @server='DBVIP',--被访问的服务器别名 @srvproduct='', @provider='SQLO ...
- Android之自定义生成彩色二维码
先导个zxing.jar包 下面是xml布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...
- Delphi 取得桌面文件夹的路径和取得我的文档的路径
Uses Windows,Registry; function GetShellFolders(strDir: string): string; const regPath = '\Software\ ...
- android 应用架构随笔一(架构搭建)
1.拷贝积累utils以及PagerTab类 2.定义BaseApplication类 3.定义BaseActivity类 4.改写MainActivity 5.定义布局文件 6.定义BaseFrag ...
- zabbix监控phpfpm
php-fpm status详解 pool – fpm池子名称,大多数为wwwprocess manager – 进程管理方式,值:static, dynamic or ondemand. dynam ...