请解释 Apache Storm 中 Nimbus 的角色,并阐述它在 Storm 集群中承担的主要职责。
考察说明
考查对 Storm 集群架构中 Nimbus 组件的理解。
回答思路
- 【回答框架 1】Nimbus 是 Storm 集群的 master 节点,负责任务的分配与协调。它接收用户提交的拓扑,将任务分发到各 Supervisor 节点。
- 【回答框架 2】Nimbus 通过 ZooKeeper 管理集群状态,并与 Supervisor 协作。它不参与实际数据流,只负责任务调度和故障检测。
- 【回答框架 3】如果 Nimbus 进程失效,集群会停止接收新任务,但已运行的拓扑不受影响;数据流不会中断。Nimbus 是准实时系统,不传输数据本身。
- 【回答框架 4】Nimbus 的设计基于无状态,状态存储在 ZooKeeper 中,因此可以快速恢复。
- 【关键点 1】Nimbus 是 Storm 的 master 节点,负责任务分配与状态管理
- 【关键点 2】Nimbus 依赖 ZooKeeper 存储状态,本身无状态
- 【关键点 3】Nimbus 失效不影响已运行的任务,但停止接收新任务
- 【易错点 1】混淆 Nimbus 与 Supervisor 的职责,Supervisor 是 worker 节点,执行具体任务
- 【易错点 2】错误认为 Nimbus 直接传输数据,实际上它只负责调度与监控