(1)Application:初始化一个SparkContext即生成一个Application
(2)Job:一个Action算子就会生成一个Job
(3)Stage:Stage等于宽依赖的个数+1
(4)Task:一个Stage阶段中,最后一个RDD的分区个数就是Task的个数
1.程序从main进入到方法中,代码读到sc,会初始化生成一个Application应用。
2.接着执行代码,执行到第一个collect行动算子,会形成一个Job。
3.Job会启动DAGScheduler。
4.DAGScheduler先找到最后一个RDD,然后往前找宽依赖,找到宽依赖,就切开,创建前面的ScheduleMapStage,创建宽依赖后面的是ResultStage。(Stage的个数=宽依赖+1)
5.Task的个数就是在Stage阶段中,最后一个RDD分区的个数相加。
6.Task的个数就是在Stage阶段中,最后一个RDD分区的个数相加。
7.任务划分完成后,由TaskSchedule把Task发往对应的Executor端执行。