请描述 Apache Storm 的系统架构,并列举其核心组件有哪些?
考察说明
考查对 Storm 分布式实时计算系统整体架构和核心组件的掌握程度。
回答思路
- 【回答框架 1】Storm 是一个分布式实时计算系统,采用主从架构。其核心组件包括 Nimbus、Supervisor、ZooKeeper,以及运行中的 Topology、Spout、Bolt、Tuple 和 Stream。
- 【回答框架 2】Nimbus 是主节点,负责任务的分配、调度和状态监控。它接收用户提交的 Topology,将其分割为多个 Task,并分配给不同的 Supervisor 执行。
- 【回答框架 3】Supervisor 是从节点,负责管理本机上的 Worker 进程。每个 Worker 运行一个 JVM,可以执行多个 Task,Task 是实际运行 Spout 或 Bolt 逻辑的线程。
- 【回答框架 4】ZooKeeper 用于协调 Nimbus 和 Supervisor,存储集群状态、任务分配信息和心跳,保证分布式环境下的协调和容错。
- 【回答框架 5】数据模型上,Topology 是计算拓扑,由 Spout 和 Bolt 组成,Spout 负责读取数据源并发射 Tuple,Bolt 负责处理接收到的 Tuple 并可以继续发射。Tuple 是基本数据单元,Stream 是 Tuple 的序列。
- 【关键点 1】Storm 采用主从架构,核心组件包括 Nimbus、Supervisor、ZooKeeper。
- 【关键点 2】Nimbus 负责任务分配与调度,Supervisor 管理 Worker 进程,ZooKeeper 负责协调与状态存储。
- 【关键点 3】Topology 是计算图,由 Spout 和 Bolt 构成,通过 Tuple 和 Stream 传递数据。