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

spark中的memoryOverhead如何分配_spark