开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第二阶段:RDD 的分区和 Shuffle 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/689/detail/11990
RDD 的分区和 Shuffle 介绍
内容介绍
一、RDD 特性
二、分区的作用
三、分区和 Shuffle 的关系
四、Spark 中的 Shuffle 操作的特点
一、RDD 特性
RDD 的分区和 Shuffle 的过程(Shuffle 过程依托 RDD 的分区实现)
RDD 的缓存
RDD 的 Checkpoint(Checkpoint 是一个重要,增进性能的手段)
通过第一部分希望大家能够了解 RDD 的分区是怎么样的,分区该怎么操作,分区怎么去增大,怎么去减少,怎么去重分区。
二、分区的作用
1. RDD 经常需要通过读取外部系统的数据来创建,外部存储系统往往是支持分片的,外部存储与大数据平台配合使用,所存储的数据量特别大,单击存不下,故支持分片。
分片侧重存储,分区侧重计算,RDD 需要支持分区,来和外部系统的分片--对应。处理外部系统的文件。
例:sc 里有方法 textfile,经常读取外部系统的数据来创建 RDD。
2. RDD 的分区是一个并行计算的实现手段
三、分区和 Shuffle 的关系
他们并没有关系,一个 Shuffle 是计算转存的一个过程,随机分组的过程,分区是数据集本身。所以他们并没有直接关系,但是 RDD 的分区和 Shuffle 也有关系。
Shuffle 如果想要实现,是多个分区之间进行数据的拷贝。比如 PDD 有三个分区,现在要把他 Shuffle 到另 RDD 当中,这个 RDD 有两个分区,他们之间关系如下图: