1. RDD是什么
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。
RDD中是不保存数据的,理解上我们可以看作一个集合
rdd里面具体数据是分布在多台机器上的excutor的堆内,堆外,磁盘
RDD就是一个类
2. RDD的属性–7个特性
RDD是由一系列的partitions组成
RDD之间是有以来的
RDD上的算子、函数是作用在partitions上的
RDD的分区器是作用在kv 类型的RDD上的
RDD 对外提供了最佳计算位置
RDD一旦创建就不可以修改,是只读的
RDD是可分区的
3. RDD的弹性体现在哪里?
存储弹性:内存 磁盘自动切换,底层实现,用户透明
容错弹性:数据丢失可以自动恢复,rdd的血统决定的
计算弹性:计算出错重试机制,计算是分层的application—job—stadge—task 每一层都有重试机制
分区弹性:根基需要重新分区 repartiton coales方法是可以改变分区数,还有分区器
4. spark core都做了什么?
(1)rdd创建
sc.makeRDD(seq)
sc.parallelize(seq)
读取外部文件 sc.textFile("hdfs://hadoop-101:9000/a.txt")
RDD的转换操作
(2)rdd的转换(transformation)
略
(3)rdd的缓存(persist coach)
persist
coach
checkpoint
(4)rdd的行动(action)
略
(5)rdd的输出(saveAs)
略