原理加强Spark中的一些重要的概念

1 Application
使用SparkSubmit提交的个计算应用,一个Application中可以触发多次Action,触发一次Action形成一个DAG,一个DAG对应一个Job,一个Application中可以有一到多个Jobs

2 job
Driver向Executor提交的作业,触发一次Acition形成一个完整的DAG,一个DAG对应一个Job,一个Job中有多个Stage,一个Stage中有多个Task
由一个或多个调度阶段stage所组成的一次计算作业;包含多个Task组成的并行计算,往往由Spark Action催生,一个JOB包含多个RDD及作用于相应RDD上的各种Operation。如图所示。

3 DAG
概念:有向无环图,是对多个RDD转换过程和依赖关系的描述,触发Action就会形成一个完整的DAG,一个DAG对应一个Job

4 Stage(阶段)
什么是stage ; job工作的阶段! 后面的阶段需要使用前面阶段的数据!
比如maptask阶段 到 reducetask阶段 中间 shuffle
DAG执行的时候有阶段 , 根据shuffle(宽依赖)
前面的阶段完成以后, write到磁盘 , 等待后面的阶段去fach数据

根据依赖关系 将RDD分组
宽依赖 断开 , 后面的所有的RDD在一个stage中 ,有数据的shuffle
有shuffle的话 后面的RDD的数据就来源于不同的位置 , 必然走网络

概念:任务执行阶段,Stage执行是有先后顺序的,先执行前的,在执行后面的,一个Stage对应一个TaskSet,一个TaskSet中的Task的数量取决于Stage中最后一个RDD分区的数量

在spark中,会根据RDD之间的依赖关系将DAG图划分为不同的阶段,对于窄依赖,由于partition依赖关系的确定性,partition的转换处理就可以在同一个线程里完成,窄依赖就被spark划分到同一个stage中,而对于宽依赖,只能等父RDD shuffle处理完成后,下一个stage才能开始接下来的计算。
因此spark划分stage的整体思路是:从后往前推,遇到宽依赖就断开,划分为一个stage;遇到窄依赖就将这个RDD加入该stage中。因此在图2中RDD C,RDD D,RDD E,RDDF被构建在一个stage中,RDD A被构建在一个单独的Stage中,而RDD B和RDD G又被构建在同一个stage中。

总结:
1 从后往前推理 , 遇到宽依赖就断开 , 遇到窄依赖就把当前的RDD加入到Stage中
2 每个Stage里面的Task的数量是由该Stage中最后一个RDD的Partition的数量所决定的
3 最后一个Stage里面的任务的类型是ResultTask,前面其他所有的Stage里面的任务的类型多是ShuffleMapTask
4 代表当前Stage的算子一定是改Stage的最后一个计算步骤

5 Task
概念:Spark中任务最小的执行单元,Task分类两种,即ShuffleMapTask和ResultTask
Task其实就是类的实例,有属性(从哪里读取数据),有方法(如何计算),Task的数量决定决定并行度,同时也要考虑可用的cores
(1)ShuffleMapTask
可以读取各种数据源的数据,也可以读取shuffle后的数据,转为shuffle做准备的
(2)ResultTask
可以读取各种数据源的的数据,也可以读取shuffle后的数据,专门为了生产计算结果.

由一组关联的,但相互之间没有Shuffle依赖关系的任务所组成的任务集。如图所示。

总体的内容如下图:

6 TaskSet
保存同一种计算逻辑多个Task的集合,一个TaskSet中的Task计算逻辑都一样,计算的数据不一样
由一组关联的,但相互之间没有Shuffle依赖关系的任务所组成的任务集。如图所示。

注意:
1)一个Stage创建一个TaskSet;
2)为Stage的每个Rdd分区创建一个Task,多个Task封装成TaskSet

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值