|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
分类:
bdv018-spark.v03
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通