RDDs
弹性分布式数据集Resilient distributed datasets
RDDs是spark分发数据和计算的基础抽象类
一个RDD是不可改变的分布式集合对象
一个RDD包含很多partition
用户可以选择不同的存储级别存储RDD以便重用
当前RDD默认是存储于内存,但当内存不足时,RDD会spill到disk
RDD在需要进行分区把数据分布于集群中时会根据每条记录Key进行分区,以此保证两个数据集在Join时能高效
Lineage
为了保证RDD中数据的鲁棒性,RDD数据集通过所谓的血统关系Lineage记住了它是如何从其它RDD中演变过来的
RDD的Lineage记录的是粗颗粒度的特定数据变换Transformation操作(filter、map、join ...)行为
当这个RDD的部分分区数据丢失时,它可以通过Lineage获取足够的信息来重新运算和恢复丢失的数据分区
容错机制
两种方式:数据检查点和记录更新(默认)
只记录单个块上执行的单个操作,然后创建某个RDD的变换序列(血统)存储下来
RDD的容错机制又称“血统”容错
如何表达父RDD和子RDD之间的依赖关系?
依赖关系可以分两种,窄依赖和宽依赖










网友评论