spark中的RDD叫做弹性分布数据集,怎样理解弹性两个字

resilient的翻译中文意思
(1)Marked by the ability to recover readily, as from misfortune.
有复原力的:表示有随时恢复的能力特征的,如从灾难中恢复、我觉得是这个意思……
■网友
《Learning Spark:Lightning-fast Data Analysis》一书中解释“弹性”是指在任何时候都能进行重算。这样当集群中的一台机器挂掉而导致存储在其上的RDD丢失后,Spark还可以重新计算出这部分的分区的数据。但用户感觉不到这部分的内容丢失过。这样RDD数据集就像块带有弹性的海绵一样,不管怎样挤压(分区遭到破坏)都是完整的。
■网友
我对 RDD(弹性分布式数据集)的理解是这样的:数据集:故名思议,RDD 是数据集合的抽象,从外部来看,RDD 的确可以被看待成经过封装,带扩展特性(如容错性)的数据集合。分布式:数据的计算并非只局限于单个节点,而是多个节点之间协同计算得到。弹性:虽然 RDD 内部存储的数据是只读的,但是,我们可以去修改(例如通过 repartition 转换操作)并行计算计算单元的划分结构,也就是分区的数量。综合来看,RDD 可以被理解成:能够并行计算的数据集,后面的许多问题,例如分区划分,分区数据计算,容错机制,都是围绕它来展开。
■网友
死掉了会自己活过来。。。
■网友
我感觉是。。。。一个rdd里面partition的数目是可变的
■网友
物理分布,数据结构等都是弹性灵活的
■网友
是不是可以理解为 在一个步骤出错了,但还能从上一个步骤里取数据,不需要从头开始再算一遍…
■网友
怎么容灾呢?或者什么叫容灾?就是一个机器挂了,不会出现数据无法访问的问题。
怎么实现呢?分布式+分区呗。
其实就是在说分布式的特性。
除此之前,既然分区了,挂掉的数据该怎么恢复呢。
RDD之间存在继承关系或者叫依赖关系,RDD分区数据丢失时可以通过血缘关系重新计算出丢失的数据分区。

■网友
《The Internals of Apache Spark》一书中有明确解释:
Resilient, i.e. fault-tolerant with the help of RDD lineage graph and so able to recompute missing or damaged partitions due to node failures. 【spark中的RDD叫做弹性分布数据集,怎样理解弹性两个字】 其中 RDD lineage graph 在 RDD原始文献中有描述
Finally, to illustrate how our model achieves fault tol- erance, we show the lineage graph for the RDDs in our third query in Figure 1. In this query, we started witherrors, the result of a filter on lines, and applied a fur- ther filter and map before running a collect. The Spark scheduler will pipeline the latter two transformations and send a set of tasks to compute them to the nodes holding the cached partitions of errors. In addition, if a partition of errors is lost, Spark rebuilds it by applying a filter on only the corresponding partition of lines.我理解就是例如在某一执行层的map有一小部分丢失或出错了,可以从上一执行层对应的那一小部分中重新计算进而恢复


    推荐阅读