Spark 原理_逻辑图_总结 | 学习笔记

简介: 快速学习 Spark 原理_逻辑图_总结

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段Spark 原理_逻辑图_总结】学习笔记,与课程紧密联系,让用户快速学习知识。

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


Spark 原理_逻辑图_总结


内容简介

一、逻辑执行图

二、RDD 如何生成

三、RDD 之间有哪些依赖关系

 

一、逻辑执行图

1.定义:是 RDD 及其 RDD 之间依赖关系的图,所表达的就是整个数据的计算以及步骤

2.边界:从第一个 RDD 产生到 action 算子之前都是逻辑执行图

逻辑执行图分为两个部分,第一部分是 rdd ,第二部分是 rdd 之间的依赖,接下来,我们会对两部分展开,进行详细的说明

3.分类

1)明确边界

2RDD 如何生成

3RDD 之间的依赖关系

 

二、RDD 如何生成

通过看源码

1.;RddA = rddB.map

RddA 是由 map 算子内部创建

2.  Map 算子会创建 mappartitionsRDD;textfile 算子创建 hadoopRDD

它们都是创建 rdd,拗对象的过程

HadoopRDD mappartitionsRDD 都是 RDD 父类的子类,重写 RDD 的五大属性实现特定的功能

这是 rdd 的生成,以及生成后不同 rdd 的子类,怎样去改变 rdd 功能的

//HadoopRDD,重写了分区列表和计算函数

//MappartitionsRDD,重写 compute 函数,处理整个 RDD 的数据

 

三、RDD 之间有哪些依赖关系

分为两种:窄依赖、宽依赖

1.窄依赖

最大的特点是:对应的 RDD 的分区可以放在同一流水线上执行

image.png

如果右边的 p1 要获取数据,可以直接通过左边 p1 得到,不需要计算完,直接获取,所以这种依赖我们称之为窄依赖,分区可以放到同一流水线上执行。

2.宽依赖

1)区别:与窄依赖不同的是,有 shuffle 过程,需要另一方执行完才可以获取数据,所以宽依赖的 RDD 分区是不能放在同一流水线上执行的

假如 rddA rddB 之间是宽依赖,那么它们对应的分区是不能放在一个 task 中执行的

2)宽依赖和窄依赖的判断依据就是是否有 shuffle

①如果分区间一对一,则是窄依赖

②如果分区间多对一,要看是否有数据分发

//多对一要看分区的多少,通常分区较少,可能就是窄依赖,分区较多,就有可能是宽依赖

//要去看算子的原理,是否进行数据分发,是否有 shuffle ,有 shuffle 就是宽依赖,没有就是窄依赖

这是我们学习的逻辑执行图三大部分内容:明确边界是什么、分别介绍 rdd 的生成以及 rdd 之间的依赖关系,折叠后可以更加清晰地看到

逻辑执行图到目前为止还没有探讨如何在集群中执行,所以接下来我们会通过物理执行图,了解逻辑执行的怎样运行在集群中。

相关文章
|
移动开发 分布式计算 Spark
Spark的几种去重的原理分析
Spark的几种去重的原理分析
427 0
|
机器学习/深度学习 SQL 分布式计算
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
1448 0
|
分布式计算 Java 大数据
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
187 0
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
302 0
|
SQL 分布式计算 算法
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
251 0
|
SQL 存储 分布式计算
spark执行sql的原理是什么
spark执行sql的原理是什么
365 1
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
160 0
|
6月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
364 0
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
955 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
9月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
475 79