RDD是spark的核心,也是整个spark的架构基础,RDD是弹性分布式集合(Resilient Distributed Datasets)的简称,
是分布式只读且已分区集合对象。这些集合是弹性的,若是数据集一部分丢失,则能够对它们进行重建。具备自动容错、位置感知调度和可伸缩性,而容错性是最难实现的,大多数分布式数据集的
容错性有两种方式:数据检查点和记录数据的更新。对于大规模数据分析系统,数据检查点操做成本高,主要缘由是大规模数据在服务器之间的传输带来的各方面的问题,相比记录数据的更新,RDD也只支持粗粒度的转换,也就是记录如何从其余RDD转换而来(即lineage),以便恢复丢失的分区。
简而言之,特性以下:
1. 数据结构不可变
2. 支持跨集群的分布式数据操做
3. 可对数据记录按key进行分区
4. 提供了粗粒度的转换操做
5. 数据存储在内存中,保证了低延迟性