3天掌握Spark-- RDD Checkpoint
Posted 一只楠喃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3天掌握Spark-- RDD Checkpoint相关的知识,希望对你有一定的参考价值。
RDD Checkpoint
RDD 数据可以持久化,但是持久化/缓存可以把数据放在内存中,虽然是快速的,但是也是最不可靠的;也可以把数据放在磁盘上,也不是完全可靠的!例如磁盘会损坏等。
在Spark Core中对RDD做checkpoint,可以切断做checkpoint RDD的依赖关系,将RDD数据保存到可靠存储(如HDFS)以便数据恢复;
/**
* RDD数据Checkpoint设置,案例演示
*/
object _06SparkCkptTest {
def main(args: Array[String]): Unit = {
// 创建应用程序入口SparkContext实例对象
val sc: SparkContext = {
// 1.a 创建SparkConf对象,设置应用的配置信息
val sparkConf: SparkConf = new SparkConf()
.setAppName(this.getClass.getSimpleName.stripSuffix("$"))
.setMaster("local[2]")
// 1.b 传递SparkConf对象,构建Context实例
new SparkContext(sparkConf)
}
// TODO: 设置检查点目录,将RDD数据保存到那个目录
sc.setCheckpointDir("datas/ckpt/")
// 读取文件数据
val datasRDD = sc.textFile("datas/wordcount.data")
// TODO: 调用checkpoint函数,将RDD进行备份,需要RDD中Action函数触发
datasRDD.checkpoint()
datasRDD.count()
// TODO: 再次执行count函数, 此时从checkpoint读取数据
println(datasRDD.count())
// 应用程序运行结束,关闭资源
Thread.sleep(1000000000)
sc.stop()
}
}
持久化和Checkpoint的区别:
点个赞嘛!
以上是关于3天掌握Spark-- RDD Checkpoint的主要内容,如果未能解决你的问题,请参考以下文章