|NO.Z.00085|——————————|BigDataEnd|——|Hadoop&Spark.V01|——|Spark.v01|Spark 原理 源码|作业执行原理&任务调度概述|

一、作业执行原理
### --- 任务调度概述

~~~     再次简要回顾 Spark 中的几个重要概念:
~~~     Job 是以 Action 方法为界,遇到一个 Action 方法则触发一个 Job
~~~     Stage 是 Job 的子集,以 RDD 宽依赖(即 Shuffle)为界,遇到 Shuffle 做一次划分。
### --- Stage有两个具体子类:

~~~     ShuffleMapStage,是其他 Stage 的输入
~~~     ShuffleMapStage 内部的转换操作(map、filter等)会组成pipeline,连在一起计算
~~~     产生 map 输出文件(Shuffle 过程中输出的文件)
~~~     ResultStage。一个job中只有一个ResultStage,最后一个 Stage 即为 ResultStage
~~~     Task 是 Stage 的子集,以并行度(分区数)来衡量,分区数是多少,则有多少个 task
### --- SparkContext中的三大组件:

~~~     DAGScheduler(class) 负责 Stage 的调度
~~~     TaskScheduler(trait,仅有一个实现 TaskSchedulerImpl) 负责 Task 的调度
~~~     SchedulerBackend 有多种实现,分别对应不同的资源管理器
~~~     # sparkcontext三大组件:

SchedulerBackend(org.apache.spark.scheduler)
CoarseGrainedSchedulerBackend(org.apache.spark.scheduler.cluster)
StandaloneSchedulerBackend(org.apache.spark.scheduler.cluster)
LocalSchedulerBackend(org.apache.spark.scheduler.local)
~~~     Spark 的任务调度可分为:Stage 级调度(高层调度)、Task级调度(底层调度)。
~~~     总体调度流程如下图所示:

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on 2022-04-12 13:47  yanqi_vip  阅读(22)  评论(0)    收藏  举报

导航