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

3.3.1 基本概念

3.3.2 架构设计

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

3.3.3 Spark运行基本流程

 

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

3.3.4 RDD的设计与运行原

1.RDD设计背景

 

2.RDD概念

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

                                           图  RDD执行过程的一个实例

3.RDD特性

4. RDD之间的依赖关系

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

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

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

                                                        图  MapReduce的Shuffle过程

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

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

                                                   图 Spark中的Shuffle过程

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

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

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

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

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

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

5.阶段的划分

5.Stage的划分

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

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

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

6.RDD运行过程

                                                                      图 RDD在Spark中的运行过程

                         

                                                                                  图 Spark on Yarn架构

讨论:Spark和Hadoop

        

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值