我是靠谱客的博主 落后酒窝,最近开发中收集的这篇文章主要介绍Spark RDD-2-持久化&容错机制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

 

 

最后

以上就是落后酒窝为你收集整理的Spark RDD-2-持久化&容错机制的全部内容,希望文章能够帮你解决Spark RDD-2-持久化&容错机制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部