什么是RDDs
RDDs:Resilient Distributed Datasets。
RDD是一个可以使程序员在大的集群上以容错的方式进行计算的分布式内存抽象。
为什么会诞生RDDs
现有的计算框架在迭代算法和交互数据挖掘挖掘方面性能太差,因为它们会进行频繁的I/O操作,RDD实现了在内存中计算,将计算性能提高了一个量级。RDD通过提供粗粒度的transformations来提供容错,它记录的是数据的变换而不是真实的数据,所以如果RDD的一部分数据丢失,它可以通过这个变换来很快地重新计算,这就减少了数据复制地开销。
RDD只能由deterministic或其它RDD产生。
RDD不需要始终被具体化,一个RDD拥有足够的信息直到自己是从哪个数据集上计算而来的。
RDD在Spark上实现,Spark在交互操作的速度上是Hadoop的20倍。
RDDs的适用情况
RDDs适合把相同操作应用在整个数据集的所有元素的批处理应用,而不适合需要异步且细粒度的更新共享状态的应用。
注:细粒度的更新是通过集群网络复制数据来保持同步
以上内容是我参考文献的摘要、介绍、第一章和第二章所学到的,可能会理解错误,希望大家指出,共同学习!
参考文献:
英文文献:https://www.usenix.org/node/162809
中文文献:http://spark.apachecn.org/#/docs/paper?id=spark-rdd%ef%bc%88resilient-distributed-datasets%ef%bc%89%e8%ae%ba%e6%96%87