- rdd.cache
- 默认调用persisi,之缓存内存
- def cache(): this.type = persist()
- rdd.persist()
- def persist(): this.type = persist(StorageLevel.MEMORY_ONLY)
- rdd.unpersist(true)
- 手动释放缓存RDD占用的内存、磁盘存储资源
- rdd.checkpoint:容错
- checkpoint会把rdd序列化到checkpoint目录中,并丢弃rdd之前的依赖关系
- 实现:
- sc.setCheckpointDir("....") // 检查点磁盘目录,一般是hdfs
- rdd.cache // 先缓存再checkpoint:如果rdd有依赖之前的rdd,checkpoint的时候会从头计算,浪费资源,做了重复的工作
- rdd.checkpoint // 设置检查点
- rdd.collect // action操作之后才真正的开始计算RDD并保存到检查点
- 应用场景:一般对于做了大量迭代计算的重要阶段做checkpoint,使这个点的rdd成为顶层父rdd,恢复时只需要恢复该rdd,不用重新计算
- 比如迭代1000次,第998从失败了,正好再997次checkpoint了,此时恢复会很快。
Spark RDD-2-持久化&容错机制
猜你喜欢
转载自blog.csdn.net/qq_20245089/article/details/84706409
今日推荐
周排行