3.1.1 RDD 名称的秘密

RDD 是 Resilient Ditribute Datsets 的简称,翻译成中文为”弹性分布式数据集”, 这个语义揭示了RDD实质上是存储在不同节点计算机中的数据集。分布式存储最大的好处是可以让数据在不同的工作节点上并行存储以便并行计算, 从而获得最迅捷的运行效率
Resilient 弹性

  1. 可以使用内存也可以使用磁盘
  2. RDD的容错性(某一节点发生错误 RDD会自动将其在不同的节点重试)

关于分布式数据的容错性处理较为常用的方法是

  1. 检查节点
  2. 更新记录

    3.1.2 RDD的特性

    上面已经介绍 EDD是一种分布式弹性数据集
    RDD 的另一个特性是 延迟计算,即一个完成的RDD运行任务被分成两部部分 Transformation和 Action
    Transformation(优化):
    Transformation用于对RDD的创建。在spark中,RDD只能使用Transformation来创建,同时Transformation还提供了大量的操作方法, 例如map, filter, groupBy,join登操作来对RDD处理。
    无论发生了多少个Transformation,在RDD中真正数据计算运行的操作Action都不可能真正运行
    Action(执行) :
    Action是数据的执行部分,其通过执行count,reduce,collect登方法去真正执行数据的计算部分。实际上,RDD中所有操作都是使用的lazy模式进行,lazy是一种程序优化的特殊形式。运行在编译的过程中不会立刻得到计算的最终结果,而是记住所有的操作步骤和方法,只有显示地遇到启动命令才进行计算

    3.1.4 RDD缺陷

    RDD 注重与批量数据的读写,并且将优点和执行进行分类。通过Transformation生成多个EDD,当其执行Action时,主节点通过”记录查询”的方式去确保任务的政策执行
    但是由于这些原因,使得RDD并不适合作为一个数据的存储和抓取框架,因为RDD主要执行在多个节点的批量操作,即一个简单的写操作也会分成两个步骤进行,这样反而会降低运行效率