Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

3.3.1 基本概念

Spark及RDD数据结构(一)(超详细)

3.3.2 架构设计

Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

                           图 Spark中各种概念之间的相互关系

3.3.3 Spark运行基本流程

Spark及RDD数据结构(一)(超详细)Spark及RDD数据结构(一)(超详细)

 

SparkContext对象代表了和一个集群的连接

Spark及RDD数据结构(一)(超详细)

3.3.4 RDD的设计与运行原

Spark及RDD数据结构(一)(超详细)

1.RDD设计背景

Spark及RDD数据结构(一)(超详细)

 

2.RDD概念

Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

这一系列处理称为一个Lineage(血缘关系),即DAG拓扑排序的结果 优点:惰性调用、管道化、避免同步等待、不需要保存中间结果、每次操作变得简单

Spark及RDD数据结构(一)(超详细)

                                           图  RDD执行过程的一个实例

3.RDD特性

Spark及RDD数据结构(一)(超详细)

4. RDD之间的依赖关系

Spark及RDD数据结构(一)(超详细)

4. RDD之间的依赖关系——Shuffle操作

Spark及RDD数据结构(一)(超详细)

4. RDD之间的依赖关系——Shuffle操作

Shuffle过程不仅会产生大量网络传输开销,也会带来大量的磁盘IO开销。Spark经常被认为是基于内存的计算框架,为什么也会产生磁盘IO开销呢? 对于这个问题,这里有必要做一个解释。

Spark及RDD数据结构(一)(超详细)

                                                        图  MapReduce的Shuffle过程

4. RDD之间的依赖关系——Shuffle操作

Spark经常被认为是基于内存的计算框架,为什么Shuffle过程也会产生磁盘IO开销呢?

Spark及RDD数据结构(一)(超详细)

                                                   图 Spark中的Shuffle过程

4. RDD之间的依赖关系——Shuffle操作

Spark经常被认为是基于内存的计算框架,为什么Shuffle过程也会产生磁盘IO开销呢?

Spark及RDD数据结构(一)(超详细)

                            图 Spark Shuffle把多个桶写入到一个文件

4. RDD之间的依赖关系——窄依赖和宽依赖

Spark及RDD数据结构(一)(超详细)

窄依赖表现为一个父RDD的分区对应于一个子RDD的分区或多个父RDD的分区对应于一个子

RDD的分区 宽依赖则表现为存在一个父RDD的一个分区对应一个子RDD的多个分区

5.阶段的划分

Spark及RDD数据结构(一)(超详细)

5.Stage的划分

被分成三个Stage,在Stage2中,从map到union都是窄依赖,这两步操作可以形成一个流水线操作

Spark及RDD数据结构(一)(超详细)

                    图  根据RDD分区的依赖关系划分Stage

流水线操作实例 分区7通过map操作生成的分区9,可以不用等待分区8到分区10这个map操作的计算结束,而是继续进行union操作,得到分区13,这样流水线执行大大提高了计算的效率

6.RDD运行过程

Spark及RDD数据结构(一)(超详细)

Spark及RDD数据结构(一)(超详细)

                                                                      图 RDD在Spark中的运行过程

Spark及RDD数据结构(一)(超详细)

                        Spark及RDD数据结构(一)(超详细) 

                                                                                  图 Spark on Yarn架构

讨论:Spark和Hadoop

        Spark及RDD数据结构(一)(超详细)