spark组件说明
下图是spark执行时的基本结构
Driver驱动器
Driver驱动器节点用来调节各个工作节点,执行程序的main方法的进程,当启动一个spark shell的时候就是启动了一个spark驱动程序
主要职责
把用户程序转为作业任务(task)
spark程序隐式的创建出了一个由操作组成的逻辑上的有向无环图(Directed Acyclic Graph,简称DAG),当驱动程序运行时,会把这个逻辑图转为物理执行计划,spark将逻辑计划转为一系列的步骤(stage),每个步骤由多个任务组成,任务是spark的最小工作单元
为执行器节点调度任务
执行器进程启动后,会向驱动器进程注册,驱动器进程对应用中所有执行器节点有完整的记录
Executor执行器
执行器节点负责在Spark中执行作业任务
主要职责
- 负责运行spark中的作业任务,并将结果返回给驱动器进程
- 通过自身的块管理器为用户程序中要求缓存的RDD提供内存式存储,RDD直接缓存在执行器进程内
Cluster Manager集群管理器
spark依赖于集群管理器来启动执行器节点,集群管理器是spark中一个可插拔的组件,除了spark自带的独立集群管理器,还可以运行在外部集群管理器上,如Yarn等