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数量)的总和。日记大全100字
上图就是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数量。