Nimbus
Storm集群的Master节点,负责分发用户代码,指派给具体的Supervisor节点上的Worker节点,去运行Topology对应的组件 (Spout/Bolt)的Task。
Supervisor
Storm集群的从节点,负责管理运行在Supervisor节点上的每一个Worker进程的启动和终止。
通过Storm的配置文件中 supervisor.slots.ports项,指定在一个Supervisor上最大允许Slot数。
每个Slot通过端口号来唯一标识,一个端口号 对应一个Worker进程。
ZooKeeper
用来协调Nimbus和Supervisor,如果Supervisor因故障出现问题而无法运行Topology,Nimbus会第一时间感知到,并重新分配 Topology到其它可用的Supervisor上运行。
运行流程
1)户端提交拓扑到nimbus。
2) Nimbus针对该拓扑建立本地的目录。
根据topology的配置计算task,分配task,
在zookeeper上建立assignments节点存储 task和supervisor机器节点中woker的对应关系;
在zookeeper上创建taskbeats节点来监控task的心跳;
启动topology。
3) Supervisor去zookeeper上获取分配的tasks,启动多个woker进行,每个woker生成多个task,一个task一个线程;
根据topol