Spark概念 | 类比公司 | 主要职责 |
Spark | 斯巴克集团 | 服务对象:建筑设计师,把用户提供的代码转化为设计图纸 |
Driver | 集团总公司 | |
DAGScheduler | 戴格 集团架构师,空降兵,熟悉图纸,解读图纸并立项。 | 将DAG(计算图)拆分为不同的运行阶段,即Stages; 根据Stages创建分布式任务Tasks和任务组TaskSets。 |
TaskScheduler | 塔斯克 集团项目经理,公司元老,控制工程项目。 | 按照调度规则决定任务优先级,完成任务调度。 |
Schedulerackend | 拜肯德 集团HR,公司元老,人力资源。 | 获取集群内可用计算资源。依序将分布式任务分发到Executores。 |
Executors | 分公司 | |
ExecutorBackend | 分公司经理或工头 | 并发执行接收到的分布式计算任务。 |
RDD算子 | 施工步骤 | |
RDD数据源 | 集装箱、数据源 | |
Task所在的Stage | 项目 | |
节点内存 | 施工工地 | |
节点磁盘 | 临时仓库 | |
管理数据组件 | 布劳克家族 | |
BlockManagerMaster | 总公司老布劳克 | |
BlockManager | 分公司小布劳克 | |
MemoryStore | 小布劳克的帮手麦美瑞 | 内存数据存取 |
DiskStore | 小布劳克的帮手迪斯科 | 磁盘管理 |
DiskBlockManager | 迪斯科帮手 | 磁盘存取 |
DAGScheduler的三个职责:
- 根据用户代码构建DAG;
- 以Shuffle为边界切割Stages;
- 基于stage创建TaskSets,并将TaskSets提交给TaskScheduler请求调度。