Storm在集群上运行一个Topology时,主要通过以下3个实体来完成Topology的执行工作:1. Worker(进程)2. Executor(线程)3. Task 下图简要描述了这3者之间的关系: 注:supervisor.slots.ports:对于每个工作节点配置该节点可以运行多少个worker进程. 每个worker进程使用一个但单独的端口来收取消息,这里配置了哪个端口用来使用. 定义5个端口,那么该节点上允许最多运行5个worker进程. 默认情况下,可以在端口6700, 670…
不多说,直接上干货! Worker.Task.Executor三者之间的关系 Storm集群中的一个物理节点启动一个或者多个Worker进程,集群的Topology都是通过这些Worker进程运行的. 然而,Worker进程中又会运行一个或者多个Executor线程,每个Executor线程只运行一个Topology的一个组件(Spout或Bolt)的Task任务,Task又是数据处理的实体单元. Worker是进程,Executor对应于线程,Spout或Bolt是一个个的Task: 同一个W…
不多说,直接上干货! 以下都是非常重要的storm概念知识. (Tuple元组数据载体 .Spout数据源.Blot消息处理者.Stream消息流 和 Stream Grouping 消息流组.Worker工作者进程.Task是最终运行spout或bolt中代码的执行单元.executor是worker进程启动的一个单独线程) 见博客 Storm概念学习系列之storm核心组件 Storm概念学习系列之Task任务 Storm概念学习系列之Tuple元组 Storm概念学习系列之Blot消息处理…
Storm核心组件 了解 Storm 的核心组件对于理解 Storm 原理非常重要,下面介绍 Storm 的整体,然后介绍 Storm 的核心. Storm 集群由一个主节点和多个工作节点组成.主节点运行一个名为"Nimbus"的守护进程,工作节点都运行一个名为"Supervisor"的守护进程,两者的协调工作由 ZooKeeper 来完成, ZooKeeper 用于管理集群中的不同组件. 每一个工作节点上运行的 Supervisor 监听分配给它那台机器的工作,根…
不多说,直接上干货! Storm核心组件 了解 Storm 的核心组件对于理解 Storm 原理非常重要,下面介绍 Storm 的整体,然后介绍 Storm 的核心. Storm 集群由一个主节点和多个工作节点组成.主节点运行一个名为“Nimbus”的守护进程,工作节点都运行一个名为“Supervisor”的守护进程,两者的协调工作由 ZooKeeper 来完成, ZooKeeper 用于管理集群中的不同组件. 每一个工作节点上运行的 Supervisor 监听分配给它那台机器的工作,根据需要启…
在"storm源码分析之topology提交过程"一文最后,submitTopologyWithOpts函数调用了mk-assignments函数.该函数的主要功能就是进行topology的任务分配(task assignment).mk-assignments函数定义如下: ;; get existing assignment (just the executor->node+port map) -> default to {};; filter out ones whi…
nimbus是storm集群的"控制器",是storm集群的重要组成部分.我们可以通用执行bin/storm nimbus >/dev/null 2>&1 &来启动nimbus.bin/storm是一个python脚本,在这个脚本中定义了一个nimbus函数: nimbus函数 def nimbus(klass="backtype.storm.daemon.nimbus"):   """Syntax: [st…
nimbus是storm集群的"控制器",是storm集群的重要组成部分.我们可以通用执行bin/storm nimbus >/dev/null 2>&1 &来启动nimbus.bin/storm是一个python脚本,在这个脚本中定义了一个nimbus函数: nimbus函数 def nimbus(klass="backtype.storm.daemon.nimbus"):    """Syntax: [s…
Component包含Executor(threads)的个数 在StormBase中的num-executors, 这对应于你写topology代码时, 为每个component指定的并发数(通过setBolt和setSpout)   Component和Task的对应关系, (storm-task-info) 默认你可以不指定task数, 那么task和executor为1:1关系 当然也可以通过ComponentConfigurationDeclarer#setNumTasks()去设置T…
nimbus 是整个集群的控管核心,负责topology的提交.运行状态监控.任务重新分配等工作. zk就是一个管理者,监控者. 总体描述:nimbus下命令(分配任务),zk监督执行(心跳监控worker.supurvisor的心跳都归它管),supervisor领旨(下载代码),招募人马(创建worker和线程等),worker.executor就给我干活!task就是具体要干的活. 主控节点与工作节点 Storm集群中有两类节点:主控节点(Master Node)和工作节点(Worker…