Spark 中的 checkpoint
为了实现容错,需要做checkpoint。以Streaming为例,checkpoint中有两种数据:
1. Metadata checkpointing:用于恢复driver端出错的情况。其中包含:
(1) Configuration 用于创建Streaming应用所需要的配置信息
(2)DStream Operations:Streaming应用中定义的所有操作
(3)Imcomplete Batches:已经排队的,但是尚未完成的batch
2. Data checkpointing:保存生成的RDD,主要用于一些有状态的transfermation操作。比如新的RDD需要上一批次的RDD的结果。
由此我们可以得出以下情况需要进行checkpoint
1. 用到有状态的transformation时,如:updateStateByKey,reduceByKeyAndWindow
2. driver端发生错误,需要恢复的情况