RDD的检查点(checkpoint)机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_36710456/article/details/84954704

     RDD的缓存能够在第一次计算完成后,将计算结果保存到内存、本地文件系统或者Tachyon中。通过缓存,Spark避免了RDD上的重复计算,能够极大地提升计算速度。但是,如果缓存丢失了,则需要重新计算。如果计算特别复杂或者计算耗时特别多,那么缓存丢失对于整个Job的影响是不容忽视的。

为了避免缓存丢失重新计算带来的开销,Spark又引入了检查点(checkpoint)机制。

缓存是在计算结束后,直接将计算结果通过用户定义的存储级别(存储级别定义了缓存存储的介质,现在支持内存、本地文件系统和Tachyon)写入不同的介质。

而检查点不同,它是在计算完成后,重新建立一个Job来计算。

为了避免重复计算,推荐 先将RDD缓存,这样就能保证检查点的操作可以快速完成。

设置检查点:

//设置检查点目录 存储在HDFS上,并使用checkpoint设置检查点,该操作属于懒加载
sc.setCheckpointDir("hdfs://IP:9000/checkpoint/")
rdd.checkpoint()


 

猜你喜欢

转载自blog.csdn.net/sinat_36710456/article/details/84954704