一、术语解释
•Master(standalone):资源管理的主节点(进程)
•Cluster Manager:在集群上获取资源的外部服务(例如standalone,Mesos,Yarn )
•Worker Node(standalone):资源管理的从节点(进程) 或者说管理本机资源的进程
•Application:基于Spark的⽤用户程序
•Driver Program:任务调度进程
•Executor:是在一个worker进程所管理的节点上为某Application启动的⼀一个进程,该进程负责运行任务,并且负责将数据存在内存或者磁盘上。每个应⽤用都有各自独⽴立的executors
•Task:被送到某个executor上的工作单元
•Job:包含很多任务(Task)的并行计算,可以看做和action对应
•Stage:⼀个Job会被拆分很多组任务,每组任务被称为Stage(就像Mapreduce分map task和reduce task一样)
二、RDD的依赖关系:宽依赖 窄依赖
宽依赖:父RDD与子RDD,partition之间的关系是一对多的话
窄依赖:父RDD与子RDD,partition之间的关系是一对一的话
Stage切割规则
Stage的计算模式
•一个stage(RDD之间都是窄依赖)内进行pipeline操作
MapReduce的计算模式:1+1=2 2+1=3
Spark的计算模式是1+1+1=3
任务调度
1、DAGScheduler:切割job划分为stage,重试stage
2、TaskScheduler:分发task,重试失败的task
DAGScheduler和TaskScheduler 进程在driver里面
任务调度具体