Spark 原理_物理图_介绍 | 学习笔记

简介: 快速学习 Spark 原理_物理图_介绍

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

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


Spark 原理_物理图_介绍


内容简介

一、回顾

二、了解物理执行图

三、谁来计算 RDD

四、谁来计算 RDD

 

一、回顾

在前面我们学习了逻辑执行图的生成,是什么,里面包含的内容,总之逻辑执行图就是表达了数据的计算流程,从哪一步到哪一步

接下来我们要去了解一下物理执行图

逻辑执行图最终要运行到集群当中,就是本节要学习的内容

 

二、了解物理执行图

在逻辑执行图重要了解的问题很简单,如图已经生成好了,接下来我们要研究如何运行在集群中,在此之间,我们要了解集群的内容

如图:

image.png

1.集群分为 master-worker-管理多个 executor,最终整个逻辑执行图要在 executor 中运行

2.rdd 可以直接在 executor 中运行吗?RDD1 不能直接再 executor 中运行

3.逻辑执行图是数据流转的过程,数据计算的表达

例如要生产一台车,这里逻辑执行图相当于设计图,车要如何设计都在设计图中,但是设计图不能自发把车造出来,所以需要工人按照设计图将车设计出来,同理有了逻辑执行图,需要工人执行,接下里我们要规划一下谁来执行逻辑执行图,这就是物理图的意义,逻辑执行图表达了数据如何计算,物理图表达了整个计算如何在集群中运行,这就是物理图的作用和意义

 

三、谁来计算 RDD

rdd 自己是无法计算自身的,谁来计算,我们来看一下

1.RDD 是什么,用来做什么?

回顾 RDD 的五大属性

A list of partitions //分区列表

A function for computing each split //计算函数

A list of dependencies on other RDDs //依赖关系

Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned) //分区函数

Optionally, a list of preferred locations to compute each split on(e.g .block locactions for an HIDFS file) //最佳位置

//分区列表,分区函数,最佳位置,这三个属性其实说的即使数据集在哪,分成了多少份,在哪更合适,在 shuffle 后如何分区

通过这三个属性可以看到 rdd 表达的就是一个数据集的概念

//计算函数和依赖关系,这两个属性其实说的是数据集从哪来、怎样得到

后两个属性说的就是计算的过程

所以结论是 RDD 是一个数据集的表示,不仅表示了数据集,还表示了这个数据集从哪来,如何计算

Rdd 既然是这样的一种表示,更像是一种数据计算的设计图,设计图自身是不能生产的,谁来生产呢?工人

 

四、谁来计算 RDD

整个集群中执行的组件叫做 executor

1.RDD 是在 executor 中运行,那么直接说 executor 就是那个工人也并不合适

2.直接使用 executor 也是不合适的,因为一个计算的执行总是需要一个容器,例如 JVM 是一个进程,只有进程中才能有线程,所以这个计算 RDD 的线程应该运行在一个进程中,这个进程就是 exeutorexecutor 有如下两个职责

(1) driver 保持交互从而认领属于自己的任务,动过自身的线程开启任务  //dirve 整个 spark 驱动程序

Executor 会与 driver 保持通讯,认领自身要执行的任务,开启线程

image.png

(2)接受任务后,运行任务

image.png

3.  所以,应该由一个线程来执行 RDD 的计算任务,而 executor 作为执行这个人物的容器,也就是一个进程,用于创建和执行线程,这个执行具体计算任务的线程叫做 task

总之,通过物理图进行规划逻辑图如何计算,运行 executor 内部的 task 进行计算

总结知识点,物理图的意义是什么,去编制逻辑图如何计算、在那计算;谁来计算,不可能是 rdd 自己来计算,也不是 executor 来计算,而是 executor 类运行 task 去计算

目录
打赏
0
0
0
0
127
分享
相关文章
Spark的几种去重的原理分析
Spark的几种去重的原理分析
203 0
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
1001 0
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
76 0
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
192 0
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(二)
146 0
spark执行sql的原理是什么
spark执行sql的原理是什么
207 1
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
166 79
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
370 2
ClickHouse与大数据生态集成:Spark & Flink 实战
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
125 0