Spark 原理_运行过程_Job 和 Stage 的关系 | 学习笔记

简介: 快速学习 Spark 原理_运行过程_Job 和 Stage 的关系

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段Spark 原理_运行过程_Job 和 Stage 的关系】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/12026


Spark 原理_运行过程_Job 和 Stage 的关系


内容简介

一、Job 的切分

二、Stage 的执行顺序

 

接下来我们继续学习概念上的内容,上节已经学习了 job 是什么,有什么,在本节主要学习 job stage 的关系,一个 job 中可以有多个 stage

 

一、Job 的切分

Job 是一个最大的调度单位,也就是说 DAGscheduler 会首先创建一个 job 的相关信息,后去调度 job,但是没办法直接调度 job,比如说现在要做一盘手撕包菜,不可能直接去炒一整颗包材,要切好撕碎,再去炒。

1.为什么 job 需要切分?

image.png

Job 太大,要把 job 拆开,拆成多个 stage,一个 job 中可以有多个 stage

2.如何切分?

创建一个 stage,从后向前回溯 RDD,遇到 shuffle 依赖就结束 stage,后创建新的 stage 继续回溯。

 

二、执行顺序

有两个 stage,这两个 stage 的运行关系间是串行,stage1 计算完毕,才能计算 stage0,中间有 shuffle 操作,所以只有前面 stage 产生结果后,再去获取结果,所以后面阶段的 rdd,需要依赖前面阶段的计算 ,所以两个 stage 不可能同时执行,然而两者间要先执行 stage1,上节的4040网站的 stage 划分不同,是因为事先将第一个 stage 放到集群中执行的,再去调度第二个 stage,所以名字会出现混乱

在图中,stage0 的计算需要依赖 stage1 的数据,因为 reduceRDD 中一个分区可能需要多个 tupleRDD 的分区的数据,所以 tupleRDD 必须先计算完,所以,应该在逻辑图中自左向右执行 stage,不能同时执行

总结 Job stage 的关系:

1.一个 job 中可以有多个 stage

2.Stage 之间是串行的

3.左侧的接近起始的 stage 最先执行,从左到右执行

相关文章
|
2月前
|
分布式计算 监控 Spark
Spark 任务运行时日志分析
Spark 任务运行时日志分析
64 0
|
4天前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
|
21天前
|
分布式计算 DataWorks 网络安全
DataWorks操作报错合集之还未运行,spark节点一直报错,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
SQL 分布式计算 HIVE
[已解决]Job failed with org.apache.spark.SparkException: Job aborted due to stage failure: Task 3 in st
[已解决]Job failed with org.apache.spark.SparkException: Job aborted due to stage failure: Task 3 in st
161 0
|
2月前
|
存储 分布式计算 大数据
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
166 0
|
8月前
|
缓存 分布式计算 资源调度
Spark2:运行架构
Spark2:运行架构
187 0
|
2月前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
15天前
|
存储 分布式计算 Hadoop
Spark和Hadoop都是大数据处理领域的重要工具
【6月更文挑战第17天】Spark和Hadoop都是大数据处理领域的重要工具
118 59
|
1天前
|
分布式计算 资源调度 Hadoop
Java大数据处理:Spark与Hadoop整合
Java大数据处理:Spark与Hadoop整合
|
19天前
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
46 6