RDD持久化

RDD Persist

RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据缓存在(BlockManager)JVM的堆内存中。不是说这两个方法被调用时立即缓存,而是触发后面的action算子时,该RDD将会被缓存在计算节点的内存中,供后面重用。
Cache是调用的无参Persist方法,存储级别为MEMORY_ONLY。
如果需要从内存中清除缓存,可以使用unpersist()方法。RDD持久化是可以手动选择不同的策略的。在调用persist()时传入对应的StorageLevel即可。

在这里插入图片描述

检查点 RDD CheckPoint

检查点其实就是通过将RDD中间结果写入磁盘。由于血缘依赖过长会造成容错成本过高,这样就不如在中间阶段做检查点容错。如果检查点之后节点出现问题,可以从检查点开始重做血缘,减少了开销。同理,也是在执行Action操作才能触发。

缓存和检查点的区别

  1. Cache缓存只是将数据保存在BlockManager中,不切断血缘依赖。CheckPoint检查点切断血缘依赖,只有一个强行设置的checkpointRDD。
  2. Cache缓存数据通常存储在磁盘、内存等地方,可靠性低。CheckPoint的数据通常存储在HDFS等容错、高可用的文件系统,可靠性高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值