RDD简介

阅读更多
    从源码来看,RDD是被定义为了一个抽象基类,里面定义了像compute(计算分区),getPartitions(获取分片),getDependencies(获取依赖)等抽象函数及一系列基本函数(catch,persist,checkpointRDD)。然后具体的像 jdbcRDD, HadoopRDD, ShuffleRDD 等都继承自RDD并有份自己的实现。

  RDD的主要属性有以下部分组成:
   一组分片
   一个计算分区的函数
   RDD之间的依赖关系----------------->实现自动容错
   一个分区函数
   一个列表,一个分区优先位置-------------------->位置感知(本地化)

   RDD的弹性表现
   1、弹性之一:自动的进行内存和磁盘数据存储的切换;
   2、弹性之二:基于Lineage的高效容错(第n个节点出错,会从第n-1个节点恢复,血统容 错);
   3、弹性之三:Task如果失败会自动进行特定次数的重试(默认4次);
   4、弹性之四:Stage如果失败会自动进行特定次数的重试(可以只运行计算失败的阶段);只计算失败的数据分片;

你可能感兴趣的:(RDD,Spark)