0%

Flink-checkpoint

Flink Checkpoint 原理流程以及常见失败原因分析

影响Checkpoint的几个关键参数:

参数 默认值 备注
state.backend none 用于指定checkpoint state存储的backend,
state.backend.async true 用于指定backend是否使用异步snapshot,有些不支持async或者只支持async的state backend可能会忽略这个参数
state.backend.fs.memory-threshold 1024 用于指定存储于files的state大小阈值,如果小于该值则会存储在root checkpoint metadata file
state.backend.incremental false 用于指定是否采用增量checkpoint,有些不支持增量checkpoint的backend会忽略该配置
state.backend.local-recovery false 任务本地恢复
state.checkpoints.dir none 用于指定checkpoint的data files和meta data存储的目录,该目录必须对所有参与的TaskManagers及JobManagers可见
state.checkpoints.num-retained 1 用于指定保留的已完成的checkpoints个数
state.savepoints.dir none 用于指定savepoints的默认目录
taskmanager.state.local.root-dirs none

RETAIN_ON_CANCELLATION

CheckpointConfig config = env.getCheckpointConfig();
config.enableExternalizedCheckpoints(ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION);
config.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);
config.setCheckpointInterval(``60000``);

ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION,表示一旦Flink处理程序被cancel后,会保留Checkpoint数据,以便根据实际需要恢复到指定的Checkpoint处理

简单之美 | Flink Checkpoint、Savepoint配置与实践