# 063. 大白话讲集群架构与核心概念
# Storm 的集群架构
Nimbus、Supervisor、ZooKeeper、Worker、Executor、Task
- Nimbus:资源调度
- Supervisor:相当于一台机器上的代理管家
- ZooKeeper:用于存放 Nimbus 和 Supervisor 的调度元数据信息
- Worker:根据配置可启动多个 worker 进程
- Executor:根据配置可启动多个线程
- Task:就是业务代码,不是线程,可能就是 stom 中你需要实现的业务代码
整体架构流程如图:一个事实计算作业启动后,Nimbus 通知 Supervisor 去启动 n 个 Worker,Worker 又启动 n 个 Executor,Executor 执行具体的 业务代码
# Storm 的核心概念
Topology、Spout、Bolt、Tuple、Stream
Topology(拓扑):虚的抽象的概念
Spout:数据源代码组件
可以理解为:用 java 实现一个 Spout 接口,在该代码中尝试去数据源获取数据,如 mysql、kafka
Bolt:业务处理代码组件
可以理解为:spout 会将数据传送给 bolt,各种 bolt 还可以串联成一个计算链条,同样是实现一个 bolt 接口
一堆 spout + bolt,就会组成一个 topology(拓扑),也可以叫做一个实时计算作业;
一个拓扑涵盖数据源获取/生产 + 数据处理的所有的代码逻辑
Tuple:一条数据
每条数据都会被封装在 tuple 中,在多个 spout 和 bolt 之间传递
Stream:一个流
虚的抽象的概念,源源不断过来的 tuple,就组成了一条数据流
了解了核心的基本概念之后,上图清晰的示意了他们是怎么配合工作的, 业务代码层面的概念通过配置,被调度到具体的机器上的集群概念中去执行