2.1 属性

  1. 一组分区,即数据集的基本组成单位
  2. 一个计算每个分区的函数
  3. RDD之间的依赖关系
  4. 一个Partitioner,即RDD的分片函数
  5. 一个列表,存储存取每个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持久化到外存进行去血缘。