概述
- 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-持久化&容错机制的全部内容,希望文章能够帮你解决Spark RDD-2-持久化&容错机制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复