-
ClusterManager:
- 在
Standlone模式中,ClusterManager为Master。在Yarn模式中就是ResourceManage资源管理器。
- 在
-
Worker:
- 从节点,在
Standlone模式中就是一个Worker节点,在Yarn模式中就是NodeManager,负责具体的任务,启动Executor或者Driver。
- 从节点,在
-
Driver:首先
Driver是一个Spark节点中的一个驱动进程,它是负责执行我们开发代码中的main函数的一个进程,它负责执行开发人员编写的代码,根据代码来创建SparkContext、创建RDD,以及进行RDD的转化和算子操作。如果我们用的是spark shell,那么我们在启动命令的时候,驱动器就会自动为我们创建一个SparkContext对象,如果我们的spark shell终止了,那么Spark应用也就结束了。-
Driver在spark作业中的作用- 把用户编写的程序转换成任务:
Driver程序负责把用户的程序转换成多个物理执行单元,这些单元也称之为任务(Task),Task是spark中执行的最小单元。spark程序流程其实就是:创建SparkContext、创建RDD、转换RDD、执行转换或者算子操作、结果入库,然后spark会把上述操作流程转换成一个有向无环图(DAG),也就是逻辑执行计划(Spark会对逻辑执行计划进行优化,将多个Task合并成一系列的执行步骤(Stage),所以Stage是由多个Task组成的。这些Stage会被发送到集群上执行)。当Driver运行的时候,它会把这个逻辑图转换成物理执行计划。 - 跟踪
Executor的运行状况:有了物理执行计划以后,那么Driver就会协各个节点上的Executor资源情况,当Executor启动以后,Driver会接受Executor的反向注册,那么Driver就可以监控Executor的运行情况了。
- 把用户编写的程序转换成任务:
-
-
Executor:
- 执行器,为应用提供运行在
Worker节点上的进程,然后启动线程池。每个应用程序都有独立的一组Executor。
- 执行器,为应用提供运行在
-
SparkContext:
-
Spark应用程序的上下文,控制着整个程序的声明周期。
-
-
RDD:
-
Spark基本的计算单元,一种抽象的数据结构。弹性分布式数据集,是一种内存抽象,可以理解为一个大数组,数组的元素是RDD的分区Partition,分布在集群上;在物理数据存储上,RDD的每一个Partition对应的就是一个数据块Block,Block可以存储在内存中,当内存不够时可以存储在磁盘上
-
-
DAG Scheduler:
- 根据
Job狗将Stage,封装成TaskSet提交给TaskScheduler。
- 根据
-
TaskScheduler:
- 它是一个进程
- 将
Task分发到Executor中,并接受Executor的注册,监控Executor情况。
-
结构图与执行流程:
相关文章: