本文主要是介绍checkpoint中保存了什么内容,理论与实践分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://github.com/hehuiyuan/myNote/blob/master/spark/checkpoint-understand.md
直接看原文吧,不想在写一遍了,主要涉及到图片,上传好麻烦的感觉!这里写个开头介绍,详细的看链接里面内容~!
针对spark streaming介绍checkpoint保存了什么?
比如checkpoint会把Checkpoint对象保存到checkpoint-xxxx文件中;
比如会把rdd中的数据保存到指定的checkpoint目录下的一个8293fb52-d0de-4ba8-b6f1-8ed4a7771e1c这样构成的目录下,然后按照rddid进行下一级别的目录创建,然后rddid下面对应的是按照分区写进去的数据,一个分区对应一个文件;
比如开启wal会把receiver接受到的数据保存到checkpoint目录下的receivedData中,基于60s一个文件的分割方式写入数据;
记录receiver block信息的元数据文件 receivedBlockMetadata文件,也是在checkpoint的目录下。
1: metadata checkpoint:
这个元数据信息主要是用于故障恢复的大概包含一下几类信息
(1)Configuration:应用使用的配置信息;
(2)Dstream operations:数据流操作,其实就是我们代码执行逻辑;
(3)incomplete batches:任务停止时候可能存在queued情况,那么这些数据是没有被处理的,当程序再次启动时候,是需要重新处理的。
2:data checkpoint
保存rdd到checkpoint文件,有状态操作往往需要结合多个批次的数据,那么当使用有状态操作时候checkponit是有必要开启的,一个rdd依赖另一个rdd或者多个rdd,一直依赖下去容易造成比较长的依赖链,避免无边界的增加,可以对有状态的操作的rdd的中间结果周期性的checkpointed,去切断这个血缘。
这篇关于checkpoint中保存了什么内容,理论与实践分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!