Spark 原理_总体介绍_逻辑执行图 | 学习笔记

简介: 快速学习 Spark 原理_总体介绍_逻辑执行图

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

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


Spark 原理_总体介绍_逻辑执行图


逻辑执行图是 RDD 的一组组成,是 RDD 的转换,表示了数据的处理过程,将数据处理过程表示出来,可以将逻辑执行图转化为物理执行图,物理执行图在集群组成中运行。

逻辑执行图步骤:

1.RDD 如何生成

2.通过图了解 RDD 之间的关联

image.png

打开代码,可以看出使用 sc 创建 RDD,使用算子 flatmap 转成 splitRDD 的过程,textRDD 使用 flatmap 算子生成splitRDD 的关系,splitRDD 使用 map 算子生成 tupleRDD,而 tupleRDD 使用 reduceByKey 算子生成reduceRDDreduceRDD 使用 map 算子生成 strRDD,逻辑执行图如下:

image.png

逻辑执行图负责 textRDD 如何转化为 splitRDDsplitRDD 存放哪些数据;splitRDD 如何转化为 tupleRDDtupleRDD 中存放哪些数据,彼此之间存在依赖关系。tupleRDD -RDD tupleRDD,是如何创建出来的,都由逻辑执行图得出,逻辑执行图描述数据如何流动,如何计算。

接下来改变代码,注释掉获取结果栏,编写 strRDD.todebugstring,其打印结果即为逻辑执行图,运行代码结果如下:

image.png

Todebugstring 是将 strRDD 预运行,取出 strRDD 所有的依赖关系,可以看到s trRDD 的对应关系。

也依赖了一个-RDD,是一个 reduceRDD,与代码相呼应,可以看到整个逻辑执行图通过 Todebugstring 打印出来,自上而下,最上面是离结果最近的 RDD,由副类计算得到。

打开笔记,可以看到逻辑执行图如下:

image.png

最左侧是 parallelcollectionRDD,是由 textRDD 通过 parallelize 来得到,再次通过 flatmap 算子得到新的 RDD,经过 map 算子生成另一个 mappartitionsRDD,再次经过 map 算子生成另一个 mappartitionsRDD,通过 reducebykey 算子得到 shuffledRDD,再次经过 map 得到 mappartitionsRDD,在 mappartitionsRDD 分区1parallelcollectionRDD 的分区1紧密相联,通过父亲1计算生成。

逻辑生成图并不真实存在,代表 RDD一个依赖的链条,代表逻辑执行图,代表数据如何流转。

相关文章
|
6月前
|
移动开发 分布式计算 Spark
Spark的几种去重的原理分析
Spark的几种去重的原理分析
125 0
|
1月前
|
分布式计算 Java 大数据
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
38 0
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
|
1月前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
42 0
|
1月前
|
SQL 分布式计算 算法
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
78 0
|
5月前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
40 0
|
6月前
|
SQL 存储 分布式计算
spark执行sql的原理是什么
spark执行sql的原理是什么
124 1
|
17天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
52 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
1月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
60 0
|
1月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
40 0
|
1月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
82 0