开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:Spark 原理_运行过程_stage 和 task 的关系】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/689/detail/12027
Spark 原理_运行过程_stage 和 task 的关系
内容简介
一、stage 和 task 的关系
二、Taskset
在了解了 stage 和 job 之间的关系后,再去了解更细的例子,最大执行的例子就是 job,job 中又分为 stage。
一、stage 和 task 的关系
Stage1能否直接运行,计算 rdd。一个 stage 中的所有分区都是窄依赖,一个 stage 中包含的分区,一定全都是窄依赖
1.一个 Stage 中的 RDD 之间是窄依赖,遇到宽依赖会进行分区
RDD 之间有分区,RDD 本是是不存储数据的,数据存储在 RDD 的分区中,所以针对 rdd 的分区进行计算,所以不能在 stage 中计算一整个 rdd ,只能计算对分区,在同一个 task 中
2.一个 task 对应一个 RDD 的分区
Stage 中有多个 task,task 的数目取决与 最后一个 RDD 分区的数目。
例如 stage1 中又三个分区,就有三个 task;四个分区,就有四个 task,五个分区,就有五个 task
二、Taskset
1.梳理一下这几个概念,job> stage> task, job 中包含 stage 中包含 tesk
而 stage 中经常会有一组 task 需要同时执行,所以针对每一个 task 来进行调度太过繁琐,而且没有意义,所以每个 stage 中的 task 们会被收集起来,放入一个 taskset 集合中。
2.一个 stage 有一个 taskset
一个 taskset 就对应了 RDD 中的所有分区,一个 RDD 中有多少分区,就会生成多少个 taskset
3.Taskset 中 task 的个数由 stage 中的最大分区数决定
最后按照 taskset 调度到集群中运行
总结
一个 stage 中由多个 task
一个 stage 对应一个 taskset
一个 taskset 就是一组 task