Spark Core快速入门系列(7) | RDD的持久化和检查点

rdd的持久化

在这里插入图片描述
说明
1.如果不使用持久化,那么每次调用collect,都会创建一个job每个 job 总是从它血缘的起始开始计算. 所以, 会发现中间的这些计算过程都会重复的执行.
2. 原因是因为 rdd记录了整个计算过程. 如果计算的过程中出现哪个分区的数据损坏或丢失, 则可以从头开始计算来达到容错的目的.
接下来我们来看看除了储存在内存中,还能储存在哪里!
Storage Level
在这里插入图片描述

聚合算子默认缓存

建议缓存还是要写的,养成习惯
默认进行缓存
在这里插入图片描述

在这里插入图片描述
第一次collect
在这里插入图片描述
第二次collect,就直接跳过了 默认缓存
在这里插入图片描述

checkpoint

checkpoint
    检查点
    他的功能和持久化一致
    表现是不一样的
    1.checkpoint,需要手动指定目录
    2.checkpoint的时候,当第一个job执行完之后,spark内部会立即再起一个job,专门去做checkpoint
    持久后会使用第一个job的结果进行持久化
    3.checkpoint会切断他的血缘关系
    持久化不会切断血缘关系

那我们做一个实验吧
在这里插入图片描述
如果checkpoints和cache一起用
在这里插入图片描述
建议checkpoints和cache一起使用

猜你喜欢

转载自blog.csdn.net/qq_46548855/article/details/108112924