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 去计算

相关文章
|
4月前
|
存储 分布式计算 负载均衡
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
59 0
|
4月前
|
存储 分布式计算 Hadoop
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
【大数据技术Hadoop+Spark】HDFS概念、架构、原理、优缺点讲解(超详细必看)
119 0
|
5月前
|
分布式计算 Java Spark
图解Spark Graphx实现顶点关联邻接顶点的collectNeighbors函数原理
图解Spark Graphx实现顶点关联邻接顶点的collectNeighbors函数原理
35 0
|
3月前
|
分布式计算 算法 数据挖掘
Spark中的图计算库GraphX是什么?请解释其作用和常用操作。
Spark中的图计算库GraphX是什么?请解释其作用和常用操作。
36 1
|
4月前
|
存储 分布式计算 大数据
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
【大数据技术Hadoop+Spark】Spark RDD设计、运行原理、运行流程、容错机制讲解(图文解释)
67 0
|
4月前
|
分布式计算 资源调度 大数据
【大数据技术Hadoop+Spark】Spark架构、原理、优势、生态系统等讲解(图文解释)
【大数据技术Hadoop+Spark】Spark架构、原理、优势、生态系统等讲解(图文解释)
186 0
|
6月前
|
SQL 分布式计算 算法
【大数据处理框架】Spark大数据处理框架,包括其底层原理、架构、编程模型、生态圈
【大数据处理框架】Spark大数据处理框架,包括其底层原理、架构、编程模型、生态圈
232 0
|
9月前
|
存储 分布式计算 并行计算
Spark 图计算实战
Spark 图计算实战
158 0
|
3月前
|
机器学习/深度学习 SQL 分布式计算
Apache Spark 的基本概念和在大数据分析中的应用
介绍 Apache Spark 的基本概念和在大数据分析中的应用
159 0
|
13天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。