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了,此时恢复会很快。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值