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 之间的依赖关系,折叠后可以更加清晰地看到

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

相关文章
|
5月前
|
存储 分布式计算 负载均衡
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
63 0
|
5月前
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
131 0
|
6月前
|
分布式计算 Java Spark
图解Spark Graphx实现顶点关联邻接顶点的collectNeighbors函数原理
图解Spark Graphx实现顶点关联邻接顶点的collectNeighbors函数原理
35 0
|
5月前
|
存储 分布式计算 大数据
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
71 0
|
5月前
|
分布式计算 资源调度 大数据
【大数据技术Hadoop+Spark】Spark架构、原理、优势、生态系统等讲解(图文解释)
【大数据技术Hadoop+Spark】Spark架构、原理、优势、生态系统等讲解(图文解释)
248 0
|
7月前
|
SQL 分布式计算 算法
【大数据处理框架】Spark大数据处理框架,包括其底层原理、架构、编程模型、生态圈
【大数据处理框架】Spark大数据处理框架,包括其底层原理、架构、编程模型、生态圈
245 0
|
SQL 分布式计算 Java
五、【计算】Spark原理与实践(下) | 青训营笔记
五、【计算】Spark原理与实践(下) | 青训营笔记
五、【计算】Spark原理与实践(下) | 青训营笔记
|
存储 SQL 分布式计算
Spark 原理 | 青训营笔记
Spark Core:Spark核心组件,它实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。
198 0
Spark 原理 | 青训营笔记
|
分布式计算 大数据 Spark
高级特性_闭包_Spark 闭包分发 | 学习笔记
快速学习 高级特性_闭包_Spark 闭包分发
61 0
高级特性_闭包_Spark 闭包分发 | 学习笔记
|
分布式计算 大数据 Spark
Spark 原理_总体介绍_物理执行图 | 学习笔记
快速学习 Spark 原理_总体介绍_物理执行图
86 0
Spark 原理_总体介绍_物理执行图 | 学习笔记