`

storm中supervisor, task, worker, spout, bolt之间的关系

阅读更多
一个storm topology运行起来之后, 会在supervisor 机器上启动一些进程来运行spout和bolt实例.

如果一个topology里面一共有一个spout, 一个bolt。 其中spout的parallelism是2, bolt的parallelism是4, 那么我们可以把这个topology的总工作量看成是6, 那么一共有6个task,那么/tasks/{topology-id}下面一共会有6个以task-id命名的文件,其中两个文件的内容是spout的id, 其它四个文件的内容是bolt的id。

task->node+port, 它其实就是从task-id到supervisor-id+port的映射, 也就是把这个task分配给某台机器的某个端口来做。

topology里面的组件(spout/bolt)都根据parallelism被分成多个task, 而这些task被分配给supervisor的多个worker来执行。

task都会跟一个componment-id关联, componment是spout和bolt的一个统称.

对于每一个component在部署的时候都会指定使用的数量, 在storm-user中有一个讨论说明了这个问题:
里面的大意是说, 通过设置parallelism来指定执行spout/bolt的线程数量. 而在配置中还有另外一个地方(backtype.storm.Config.setNumWorkers(int))来指定一个storm集群中执行topolgy的进程数量, 所有的线程将在这些指定的worker进程中运行. 比如说一个topology中要启动300个线程来运行spout/bolt, 而指定的worker进程数量是60个, 那么storm将会给每个worker分配5个线程来跑spout/bolt, 如果要对一个topology进行调优, 可以调整worker数量和spout/bolt的parallelism数量(调整参数之后要记得重新部署topology. 后续会为该操作提供一个swapping的功能来减小重新部署的时间).

对于worker和task之间的比例, nathan也给出了参考, 即1个worker包含10~15个左右, 当然这个参考, 实际情况还是要根据配置和测试情况

参考:
http://xumingming.sinaapp.com/category/storm/
分享到:
评论

相关推荐

    漫谈大数据第四期-storm

    Storm的术语包括Stream、Spout、Bolt、Task、Worker、Stream Grouping和Topology。Stream是被处理的数据。Sprout是数据源。Bolt处理数据。Task是运行于Spout或Bolt中的 线程。Worker是运行这些线程的进程。Stream ...

    strom的安装

    Worker由Supervisor负责启动,一个Worker中可以有多个Executor线程,每个Executor中又可包含一个或多个Task。Task为Storm中的最小处理单元,它是Topology组件诸多并行度中的一个。每个Executor都会启动一个消息循环...

    Avaya CMS Supervisor中文使用说明

    详细介绍Avaya公司CMS Supervisor 使用方法和配置技巧。

    supervisor

    它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程...

    supervisor-3.3.1离线安装包

    收集了supervisor所需要的多个安装包,并且测试成功, 可以启动dotnetcore程序,并进行监控。

    mykubernetes#hadoop#Storm集群搭建1

    1、查看nimbus的日志信息 2、查看ui运行日志信息 3、查看supervisor运行日志信息 4、查看supervisor上worker运行日志信息 5、

    supervisor安装包

    自动安装supervisor

    supervisor在linux环境下的离线安装包

    supervisor在linux环境下的离线安装包,包括所有依赖包(不包括py,py请自行安装)

    JStorm:JStorm原始码学习-源码包

    在storm0.8之后,任务不再与物理线程对应,不同的spout / bolt的任务可能会共享一个物理线程,该线程称为执行器。 风暴编程模型 数据来源:外部数据源 Spout:接受外部数据源的组件,将外部数据源转换成Storm内部的...

    supervisor安装与配置

    Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd, daemontools和runit有些相似, 但是与它们不一样的是, 它...

    Storm+Zookeeper 流模式大数据处理部署手册

    Slave 服务器部署 Supervisor 工作节点用于收听工作指派并基于要求运行工作进程,而 Nimbus 和 Supervisor 之间的协调则通过 Zookeeper 系统或者集群实现。 操作系统:统信服务器操作系统 Storm:2.2.0 Zookeeper:...

    Supervisor守护进程离线脚本无脑安装

    Supervisor守护进程离线脚本无脑安装

    kafka-storm:通过storm打印kafka消息的测试环境和代码

    nimbus :192.168.111.101 上的storm numbus VM,运行supervisor、nimbus 和storm UI worker1 :storm worker VM,在 192.168.111.102 上运行受监督的主管 Storm-code 目录包含一个用于部署和测试的简单风暴拓扑。...

    supervisor-3.3.1.tar.gz

    supervisor是linux下的线程守护工具,在 Linux 上有很多可以管理进程的工具,我们使用 Supervisor 来做这个事情。原因有两点: 1、它是微软官方文档推荐的,降低学习成本。 2、它并不一定是最好的,但一定是...

    supervisor 安装与配置.zip

    Ubuntu 16系统下局域网环境下supervisor 安装包,按博客步骤完成安装与配置

    storm简单介绍、模型图及基本代码

    storm简单介绍、模型图及基本代码,包括nimbus、supervisor、workers、spouts、bolts等

    supervisor-3.1.4-1.el7

    supervisor-3.1.4-1.el7.noarch.rpm(linux),有的可以积分下载

    CentOS7下Supervisor安装与配置.pdf

    一、 简介 二、 安装依赖 三、 安装Supervisor 四、 配置Supervisor 五、 Supervisor相关操作 六、 设置Supervisor为服务 七、 配置要管理的程序 八、 运行效果 九、 故障排除

Global site tag (gtag.js) - Google Analytics