3天掌握Spark-- RDD Checkpoint

Posted 一只楠喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3天掌握Spark-- RDD Checkpoint相关的知识,希望对你有一定的参考价值。

RDD Checkpoint

RDD 数据可以持久化,但是持久化/缓存可以把数据放在内存中,虽然是快速的,但是也是最不可靠的;也可以把数据放在磁盘上,也不是完全可靠的!例如磁盘会损坏等。

Checkpoint的产生就是为了更加可靠的数据持久化,在Checkpoint的时候一般把数据放在在HDFS上,这就天然的借助了HDFS天生的高容错、高可靠来实现数据最大程度上的安全,实现了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的主要内容,如果未能解决你的问题,请参考以下文章

3天掌握Spark--RDD概念及WordCount案例

3天掌握Spark-- RDD持久化

3天掌握Spark-- RDD Checkpoint

3天掌握Spark--内核调度详解

3天掌握Spark--搜狗日志统计分析联系

Spark RDD