这里在补充一些:
Supervisor、worker、Executor、Task、Spout、Bolt之间的关系
每台Supervisor上运行着若干个worker进程,在Configure对象中可以配置worker的数量,conf.setNumWorkers(number);
每个Workder进行上运行着若干个Executor执行线程,就是所谓的Task任务。
在TopologyBuilder对象中可以配置Task的数量,topologyBuilder.setNumTasks(number);这些Task任务指的是Spout或者Bolt任务。
在TopologyBuilder对象中可以配置Spout、Bolt的任务的数量。
topologyBuilder.setSpout(“spout tag name”,new XxSpout(),number);
topologyBuilder.setBolt(“bolt tag name”,new XxBolt(),number);
默认情况下# executor = #tasks即一个Executor中运行着一个Task。Spout或者Bolt的Task个数一旦指定之后就不能改变了,而Executor的数量可以根据情况来进行动态的调整。
一句话介绍,每台worker node上可以运行很多个worker,每个worker会开辟很多Executor线程来执行Task。在Storm看来,spout和bolt都是task。
|