4.3 调度核心组件

Spark调度核心组件
	1.DagScheduler
		direct acycle graph, 有向无环图调度器
		高级调度器,面向的是stage,为每个job计算stage的DAG图,跟踪rdd和stage的输出,找出最小的调度策略来执行job。
		该调度器提交stage给下层的task调度器,以taskSet的形式进行提交。

		spark stage通过将rdd进行切割,按照shuffle的边界进行切割。具有窄依赖RDD的操作串联到每个stage的一个taskset中。
		shuffle依赖的操作划分成两个stage,上一个stage的输出供下一个stage进行读取。

		DAG调度器决定运行每个task的首选位置。

		DAG调度器处理因stage输出文件丢失导致的故障,该种情况下,之前的stage需要被重新提交。其他原因的故障由task调度器
		来处理。
		- Job
			ActiveJob,用户调用action方法时,job通过submitJob方法进行提交。每个job需要多个阶段.
		- Stages
			ShuffleMapStage
			ResultStage
		- Tasks
			Spark执行单位,需要将每个task发送给主机来执行。
		- Cache tracking:
			Dag调度器能够找出哪些RDD被缓存了,放置rdd的重复计算。
		- Preferred locations 
			Dag调度器计算运行task的首选位置。
		- Cleanup:
	2.TaskScheduler
		任务调度器
	3.BackendScheduler
		后台调度器。

猜你喜欢

转载自www.cnblogs.com/lybpy/p/9775666.html
4.3