Spark ~ checkpoint 检查点

Spark ~ checkpoint 检查点

checkpoint在spark中主要有两块应用:

  • 一块是在spark core中对RDD做checkpoint,可以切断做checkpoint RDD的依赖关系,将RDD数据保存到可靠存储(如HDFS)以便数据恢复;
    为了能否提高效率,一般情况下,是需要和 cache 联合使用(先使用 cache,再使用checkpoint)
    执行过程中,会切断血缘关系。重新建立新的血缘关系
    我们的 checkpoint 等同于改变我们的数据源
  • 另外一块是应用在spark streaming中,使用checkpoint用来保存DStreamGraph以及相关配置信息,以便在Driver崩溃重启的时候能够接着之前进度继续进行处理(如之前waiting batch的job会在重启后继续处理)。

本文介绍的是在在spark core中对RDD做checkpoint的场景

所谓的检查点其实就是通过将 RDD 中间结果写入磁盘(一般情况下是 HDFS)。
由于血缘依赖过长会造成容错成本过高,这样就不如在中间阶段做检查点容错,如果检查点之后有节点出现问题, 可以从检查点开始重做血缘,减少了开销。
对 RDD 进行 checkpoint 操作并不会马上被执行,必须执行 Action 操作才能触发。

scala>     sc.setCheckpointDir("hdfs://192.168.145.130:8020/love1")
scala>
scala>     val rdd1 = sc.parallelize(List(1,2,3,4,5,6,7,8,9)).map(x=>(x,1))
scala>
scala>	   rdd1.cache()
scala>
scala>     rdd1.checkpoint()
scala>
scala>     rdd1.foreach(println)

去hadoop查看

在这里插入图片描述
checkpoint 数据是以二进制形式保存的

 sr scala.Tuple2$mcII$sp6k xQ賣? I 	_1$mcI$spI 	_2$mcI$spxr scala.Tuple2.}[? L _1t Ljava/lang/Object;L _2q ~ xppp      sq ~  pp      sq ~  pp      sq ~  pp      sq ~  pp      sq ~  pp      sq ~  pp      sq ~  pp      sq ~  pp   	   

几个相关的函数

setCheckpointDir:用于设置checkpoint文件的路径。

scala>     sc.setCheckpointDir("hdfs://192.168.145.130:8020/love1")

getCheckpointDir:用于获取设置的checkpoint文件路径

scala> 		sc.getCheckpointDir
res16: Option[String] = Some(hdfs://192.168.145.130:8020/love1/f88f7d5f-e64e-4bd8-8266-776adc7f1181)

getCheckpointFile:获取checkpoint文件的路径。如果没有做过checkpoint,则为空。

scala> 		rdd1.getCheckpointFile
res14: Option[String] = Some(hdfs://192.168.145.130:8020/love1/f88f7d5f-e64e-4bd8-8266-776adc7f1181/rdd-1)

isCheckpointed:判断是否做过checkpoint。

scala> 		rdd1.isCheckpointed
res19: Boolean = true

至于怎么将 checkpoint 的文件重新变为 RDD,这个日后在探讨

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值