2.1 属性
- 一组分区,即数据集的基本组成单位
- 一个计算每个分区的函数
- RDD之间的依赖关系
- 一个Partitioner,即RDD的分片函数
- 一个列表,存储存取每个Partition的优先位置
2.2 RDD特性
2.2.1 弹性
- 存储的弹性:内存与磁盘自动切换
- 容错的弹性:数据丢失自动恢复
- 计算的弹性:计算出错重试机制
-
2.2.2 分区
逻辑上分区,使用compute函数得到每个分区的数据。compute函数根据数据来源执行不同的操作。来源于已有的文件系统,直接读取;来源于其他RDD,执行转换逻辑。
2.2.3 只读
RDD是不可变的,可以通过不同的算子进行转换。
算子包括两类:transformations,用来进行RDD的转化,构建RDD的血缘关系;actions,触发RDD的计算,得到计算结果或保存至文件中。2.2.4 依赖
RDD之间通过算子转化,这种转化关系就是依赖。
窄依赖:RDD的分区之间一一对应
- 宽依赖:RDD的分区之间多对多依赖
2.2.5 缓存
如果应用多次使用同一个RDD,可以将它缓存起来,这样在之后使用就会直接读缓存。2.2.6 CheckPoint
RDD的血缘关系天然支持容错,也可以使用checkpoint持久化到外存进行去血缘。