学习 Flink(六):检查点

检查点(Checkpoint)机制是 Flink 实现错误容忍机制的核心。通过持续以异步的方式保存轻量级的镜像,当错误(机器、网络或者软件原因)发生时,系统重启操作并重置操作到最新保存成功的检查点。

Flink 镜像参考论文:Lightweight Asynchronous Snapshots for Distributed Dataflows

前提

Flink 检查点需要两点:

  • 持久化数据源支持重放(Replay)数据,如消息队列(Kafka 等)文件系统(HDFS 等)
  • 持久化存储,通常为分布式文件系统(HDFS 等)

初始化

默认情况下,检查点是禁用的,启用检查点调用 StreamExecutionEnvironment.enableCheckpointing 方法。

val env = StreamExecutionEnvironment.getExecutionEnvironment()

// 每 1000 ms 保存一次检查点
env.enableCheckpointing(1000)

// 高级选项:

// 设置模式为恰好一次(默认)
env.getCheckpointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE)  

参考