Spark-Spark任务中job,stage,task之间的关系

1. 什么是job

Job简单讲就是提交给spark的任务。
2. 什么是stage

Stage是每一个job处理过程要分为的几个阶段。
3什么是task

Task是每一个job处理过程要分几为几次任务。Task是任务运行的最小单位。最终是要以task为单位运行在executor中。
3. Job和stage和task之间有什么关系

Job----> 一个或多个stage---> 一个或多个task

下图是一个job分成了三个stage:

 
5.一个stage的task的数量是有谁来决定的?

是由输入文件的切片个数来决定的。在HDFS中不大于128m的文件算一个切片(默认128m)。通过算子修改了某一个rdd的分区数量,task数量也会同步修改。
6.一个job任务的task数量是由谁来决定的?

一个job任务可以有一个或多个stage,一个stage又可以有一个或多个task。所以一个job的task数量是  (stage数量 * task数量)的总和。

 
上图就是job1有3个task。
7.每一个stage中的task最大的并行度?

并行度:是指指令并行执行的最大条数。在指令流水中,同时执行多条指令称为指令并行。

理论上:每一个stage下有多少的分区,就有多少的task,task的数量就是我们任务的最大的并行度。

(一般情况下,我们一个task运行的时候,使用一个cores)

实际上:最大的并行度,取决于我们的application任务运行时使用的executor拥有的cores的数量。

如图所示,cores为3,那么最大的并行度就是3。
8.如果我们的task数量超过这个cores的总数怎么办?

先执行cores个数量的task,然后等待cpu资源空闲后,继续执行剩下的task。

 
9.spark执行时读条中的内容讲解

satge11:  当前的satge编号

(5+4)/9:

9:当前stage的task的数量,5:已完成的task数量,4:等待执行的task数量。
---------------------
作者:Morgan_Mu
来源:CSDN
原文:https://blog.csdn.net/mys_35088/article/details/80864092
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值