浅谈Spark中Job-Stage-Task之间的关系

简介: 笔记

(1)Spark-Job-Stage-Task之间的关系


在开始之前需要先了解Spark中Application,Job,Stage等基本概念,官方给出的解释如下表:

1.png如下图所示,一个Spark程序可以被划分为一个或多个Job,划分的依据是RDD的Action算子,每遇到一个RDD的Action操作就生成一个新的Job。


每个spark Job在具体执行过程中因为shuffle的存在,需要将其划分为一个或多个可以并行计算的stage,划分的依据是RDD间的依赖关系,当遇到宽依赖(Wide Dependency)时因需要进行shuffle操作,这涉及到了不同Partition之间进行数据合并,故以此为界划分不同的Stage。Stage是由Task组组成的并行计算,因此每个stage中可能存在多个Task,这些Task执行相同的程序逻辑,只是它们操作的数据不同。一般RDD的一个Partition对应一个Task,Task可以分为ResultTask和ShuffleMapTask。

2.png


(2)RDD-Partition-Records-Task之间的关系


通常一个RDD被划分为一个或多个Partition,Partition是Spark进行数据处理的基本单位,一般来说一个Partition对应一个Task,而一个Partition中通常包含数据集中的多条记录(Record)。 注意不同Partition中包含的记录数可能不同。Partition的数目可以在创建RDD时指定,也可以通过reparation和coalesce等算子重新进行划分。


通常在进行shuffle的时候也会重新进行分区,这是对于key-value RDD,Spark通常根据RDD中的Partitioner来进行分区,目前Spark中实现的Partitioner有两种:HashPartitioner和RangePartitioner,当然也可以实现自定义的Partitioner,只需要继承抽象类Partitioner并实现numPartitions and getPartition(key: Any)即可。



3.png

将上面的概念串联起来,可以得到下面的运行层次图:

4.png

相关文章
|
存储 分布式计算 大数据
Spark 原理_运行过程_stage 和 task 的关系 | 学习笔记
快速学习 Spark 原理_运行过程_stage 和 task 的关系
408 0
Spark 原理_运行过程_stage 和 task 的关系 | 学习笔记
|
分布式计算 大数据 调度
Spark 原理_运行过程_Job 和 Stage 的关系 | 学习笔记
快速学习 Spark 原理_运行过程_Job 和 Stage 的关系
296 0
Spark 原理_运行过程_Job 和 Stage 的关系 | 学习笔记
|
存储 分布式计算 大数据
Spark 原理_逻辑图_RDD 之间的关系_一对一 | 学习笔记
快速学习 Spark 原理_逻辑图_RDD 之间的关系_一对一
248 0
Spark 原理_逻辑图_RDD 之间的关系_一对一 | 学习笔记
|
SQL 存储 机器学习/深度学习
Hadoop、Hive、Spark 之间的关系?
今天我们就对 Hadoop、Hive、Spark 做下分析对比。
1483 0
Hadoop、Hive、Spark 之间的关系?
|
分布式计算 Spark 存储
Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系
梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数、Executor数、core数目的关系。
1913 0
|
分布式计算 Spark 流计算
|
分布式计算 Spark Java
|
存储 分布式计算 Scala
Apache Spark源码走读(六)Task运行期之函数调用关系分析 &存储子系统分析
本篇主要阐述在TaskRunner中执行的task其业务逻辑是如何被调用到的,另外试图讲清楚运行着的task其输入的数据从哪获取,处理的结果返回到哪里,如何返回;以及对存储子系统进行分析 。
2813 0
|
9月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
454 0