Spark源码分析之一:Job提交运行总流程概述
Spark是一个基于内存的分布式计算框架,运行在其上的应用程序,按照Action被划分为一个个Job,而Job提交运行的总流程,大致分为两个阶段: 1、Stage划分与提交 (1)Job按照RDD之间的依赖关系是否为宽依赖,由DAGScheduler划分为一个个Stage,并将每个Stage提交给TaskScheduler; (2)Stage随后被提交,并由TaskScheduler将每个stage转化为一个TaskSet; 2、Task调度与执行:由TaskScheduler负责将TaskSet中的Task调度到Worker节点的Executor上执行。 而对于第一阶段Stage划分与提交,又主要分为三个阶段: 1、Job的调度模型与运行反馈; 2、Stage划分; 3、Stage提交:对应TaskSet的生成。 下面,就以图及部分源码,概略介绍下以上三个阶段。 一、Job的调度模型与运行反馈 1、首先由DAGScheduler负责将Job提交到事件队列eventProcessLoop中,...