基本概念

Job简单讲就是提交给spark的任务。
Stage是每一个job处理过程要分为的几个阶段。
Task是每一个job处理过程要分几为几次任务。
Task是任务运行的最小单位。最终是要以task为单位运行在executor中。

job stage task之间的关系?

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

stage如何划分?

划分stage的本质是依据是否需要shuffle,需要shuffle的过程和不需要shuffle的过程明显不同,因此需要划分stage.

如下图,2个stage,遇到宽依赖,reduceByKey之前一个stage,之后一个stage(stage划分的依据是遇到宽依赖就划分一个新的stage)

job如何划分?

转换算子与行动算子结果不同. 行动算子会将结果进行输出.

当在程序中遇到一个action算子的时候,就会提交一个job,执行前面的一系列操作。因此平时要注意,如果声明了数据需要cache或者persist,但在action操作前释放掉的话,该数据实际上并没有被缓存。

通常一个任务会有多个job,job之间是按照串行的方式执行的。一个job执行完成后,才会起下一个job。有一段时间曾想让job并行执行,但没有找到解决方法。

sortby 底层调用collect,也算行动算子.会生成一个job

一个stage的task数量是如何确定的?

对于文件而言,task的数量由分区数量决定,而分区数量默认又是由分片的数量决定的(未指定的情况下). 所以hdfs读取的时候有多少分片,就要多少task

一个job的task数量是多少?

一个job可以是多个task,其task数量=stage数量*每个stage task的数量

一个Executor可以运行多少个task?

默认情况下一个task对应cpu的一个核。如果一个executor可用cpu核数为8,那么一个executor中最多同是并发执行8个task;

总结

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

spark job stage task概念与区分相关推荐

  1. Spark job stage task个数的计算方式

  2. Spark的stage划分算法源码分析

    Spark Application中可以有不同的Action触发多个Job,也就是说一个Application中可以有很多的Job,每个Job是由一个或者多个Stage构成的,后面的Stage依赖于前 ...

  3. spark 2.x ML概念与应用

    # spark 2.x ML概念与应用 @(SPARK)[spark] 一基础 1核心概念 2Transformer 3Estimator 4Pileline 5同一实例 6保存模型 二基本数据结构 ...

  4. Spark技术内幕: Task向Executor提交的源代码解析

    在上文<Spark技术内幕:Stage划分及提交源代码分析>中,我们分析了Stage的生成和提交.可是Stage的提交,仅仅是DAGScheduler完毕了对DAG的划分,生成了一个计算拓 ...

  5. 什么是RDD?带你快速了解Spark中RDD的概念!

    看了前面的几篇Spark博客,相信大家对于Spark的基本概念以及不同模式下的环境部署问题已经搞明白了.但其中,我们曾提到过Spark程序的核心,也就是弹性分布式数据集(RDD).但到底什么是RDD, ...

  6. Spark:Stage介绍

    spark job是根据action算子触发的,遇到action算子就会起一个job stage的划分依据就是看是否产生了shuflle(即宽依赖),遇到一个shuffle操作就划分为前后两 个sta ...

  7. Spark的Stage任务划分

    首先了解几个阶段 Spark集群 一个spark集群可以并发运行多个spark应用. Spark应用 一个spark应用由一个driver(写逻辑代码)和多个executor线程组成.spark程序在 ...

  8. spark中stage的划分与宽依赖/窄依赖(转载+自己理解/整理)

    [1]宽依赖和窄依赖,这是Spark计算引擎划分Stage的根源所在,遇到宽依赖,则划分为多个stage,针对每个Stage,提交一个TaskSet: 上图:一张网上的图: (个人笔记,rdd中有多个 ...

  9. 先验概率、后验概率、似然函数概念的区分

    博文二的链接:原文链接:https://blog.csdn.net/u011092188/article/details/60468246    本文中的很多➗没有打印出来,还是看原文吧 博文一: 先 ...

最新文章

  1. 高性能JavaScript笔记三(编程实践)
  2. socket 获取回传信息_基于netty框架的socket长连接负载均衡解决方案 oswl
  3. 诺曼门的十个产品_用户决策与产品设计
  4. jsp判断disable按钮不可选_选电子琴五部曲
  5. python的inspect模块
  6. mysql数据库mysqldump还原_mysqldump数据库备份与恢复
  7. C orm mysql_Simple MySQL-C ORM
  8. docker在Centos上的安装
  9. 庖丁解牛Linux内核分析01:操作系统工作原理基础
  10. python中获取文件大小_如何在Python中获取文件大小
  11. 现代通信原理4.3:白噪声
  12. Codeforces 437B 437C
  13. java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled.
  14. Thunder9(迅雷9)去掉右侧浏览器广告的方法
  15. 融云直播 SDK 2.0 上线,轻松获得视频直播能力
  16. 如何用c语言计算三角形面积
  17. JS正则表达式完整教程(略长)
  18. iptables基于域名的本机流量控制
  19. 2021复旦大学计算机专业,2021年度复旦大学计算机科学技术学院多媒体技术基础试题.doc...
  20. STM32读取旋钮编码器

热门文章

  1. ❤️一分钟学会python条件语句❤️
  2. cesium 原生抛物线
  3. linux rewind函数,C语言rewind()函数:将文件指针重新指向文件开头
  4. linux复制 cp -rf 会覆盖已经存在的文件吗_Linux笔记之目录管理命令2
  5. gerrit 数据迁移_gerrit importer 使用方法
  6. java读xml文件一般用什么_java读xml文件
  7. ubuntu个人版和server_Ubuntu Desktop和Ubuntu Server有何区别? | MOS86
  8. java 最简单一个家庭支付收入项目(实用于刚入门的小伙伴)
  9. java filter与servlet,Servlet中的Filter和Listener之间的区别(Java EE)
  10. python装饰器 廖雪峰_python装饰器的一个妙用