DAGScheduler源码分析stage划分算法,task最佳位置计算算法

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

在DAGScheduler类中的HandleJobSubmitted是job调度的核心入口

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

进入了newStage()方法它会创建一个stage对象

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

进入submitStage()方法

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

进入getMissingParentStages方法()

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

进入submitWaitingStages()方法

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

stage划分算法总结

1,从finalStage倒推

2,通过宽依赖,来进行新的stage的划分

3,使用递归优先提交父stage

接下来是stage会创建task

DAGScheduler源码分析stage划分算法,task最佳位置计算算法

进入getPreFerredLocasInternal()方法(task最佳位置计算算法)

DAGScheduler源码分析stage划分算法,task最佳位置计算算法