Spark Streaming中的checkpoint
Checkpoint 我们必须记录一些信息以方便恢复现场,在Spark Streaming中使用checkpoint实现恢复操作。 Spark Streaming中有两种不同对象的checkpont操作。 元数据(Metadata) checkpointing 保存Streaming中定义流计算的相关信息到可信赖的文件系统如HDFS,这种方式用于运行Driver的节点失败之后的恢复。 元数据包括: 配置---创建context时的配置 DStream的操作---定义流应用程序的DStream操作集 未完成的批次---记录已经在队列中但是还没有完成的批次 数据(Data) checkpointing 保存生成的RDD到可信赖的存储中,有一种场景是一些有状态的transformations是跨多个批次的数据组合,生成的RDD依赖上个批次的RDD,导致RDD的依赖链随着程序运行越来越长,当程序失败后,因为依赖链过长,恢复需要相当长的时间,如果定期checkponit就可以切断依赖链以减少恢复时间。 注意 :切断RDD之间的依赖链只是Data checkpointing顺带解决的问题,而不是设计Data checkpointing的目的,Data checkpointing的目的和作用还是保存RDD到可信赖的存储。 总的来说,元数据checkpoint主要是为了driver失败后的恢复