文章目录
1. Checkpoint 介绍





2. 持久化存储
目前,Checkpoint 持久化存储可以使用如下三种:
2.1 MemStateBackend(默认)

2.2 FsStateBackend(建议使用)

2.3 RocksDBStateBackend

2.4 语法
val env = StreamExecutionEnvironment.getExecutionEnvironment()
// start a checkpoint every 1000 ms
env.enableCheckpointing(1000)
// advanced options:
// 设置 checkpoint 的执行模式,最多执行一次或者至少执行一次
env.getCheckpointConfig.setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE)
// 设置 checkpoint 的超时时间
env.getCheckpointConfig.setCheckpointTimeout(60000)
// 如果在只做快照过程中出现错误,是否让整体任务失败:true 是 false 不是
env.getCheckpointConfig.setFailTasksOnCheckpointingErrors(false)
//设置同一时间有多少 个 checkpoint 可以同时执行
env.getCheckpointConfig.setMaxConcurrentCheckpoints(1)
2.5 修改 State Backend 的两种方式
- 第一种:单任务调整
//修改当前任务代码
env.setStateBackend(new FsStateBackend("hdfs://node01:8020/flink/checkpoints"));
或者 new MemoryStateBackend()
或者 new RocksDBStateBackend(filebackend, true);
【需要添加第三方依赖】

本文深入探讨了Apache Flink的容错机制,重点介绍了Checkpoint的三种持久化存储方式:MemStateBackend、FsStateBackend和RocksDBStateBackend,以及如何修改State Backend。此外,还详细讲解了Flink的重启策略,包括固定延迟重启、失败率重启和无重启策略,并提供了相应的配置示例。
最低0.47元/天 解锁文章
423

被折叠的 条评论
为什么被折叠?



