day05_Flink容错机制
今日目标
- Flink容错机制之Checkpoint
- Flink容错机制之重启策略
- 存储介质StateBackend
- Checkpoint 配置方式
- 状态恢复和重启策略
- Savepoint手动重启并恢复
- 并行度设置
Flink状态管理
- 状态就是基于 key 或者 算子 operator 的中间结果
- Flink state 分为两种 : Managed state - 托管状态 , Raw state - 原始状态
- Managed state 分为 两种:
- keyed state 基于 key 上的状态 支持的数据结构 valueState listState mapState broadcastState
- operator state 基于操作的状态 字节数组, ListState
Flink keyed state 案例
Flink operator state 案例
Flink的容错机制
- checkpoint : 某一时刻,Flink中所有的Operator的当前State的全局快照,一般存在磁盘上。
checkpoint 的执行流程
- 触发checkpoint , JobManager 主节点
- JobManager 触发 barrier 信号, 给 source -> transformation -> sink , 都会触发,将当前算子 operator state 保存到 HDFS 或者本地文件上, 每个operator 都备份完, 当前一个 checkpoint 就执行完毕了。
存储介质
- memoryStatebackend 生产环境不推荐
- FsStatebackend 就是存储到 HDFS 或者本地文件系统上 ,都可以用于生产环境。
- RocksdbStatebackend 先在本地进行存储, 异步增量的存储到 HDFS 文件系统上, 一般支持大的中间state 场景
Checkpoint 配置方式
状态恢复和重启策略
Savepoint 手动重启并恢复
并行度设置
- 并行度设置四种
- 算子级别
- 全局并行度
- 客户端(黑窗口)并行度
- 配置文件设置
- 优先级
- 算子级别 => 2. 全局的并行度设置 => 3.客户端设置并行度 => 4.配置文件并行度