经过前面文章的SparkContext、DAGScheduler、TaskScheduler分析,再从总体上了解Spark Job的调度流程
1、SparkContext将job的RDD DAG图提交给DAGScheduler;
2、DAGScheduler将job分解成Stage DAG,将每个Stage的Task封装成TaskSet提交给TaskScheduler;窄依赖以pipeline方式执行,效率高;
3、TaskScheduler将TaskSet中的一个个Task提交到集群中去运行;推测任务执行;遇到shuffle丢失的汇报给DAGScheduler,让DAGScheduler重新提交Stage;
4、存储和处理block是由blockmanager来处理的(后续文章描述);