zl程序教程

您现在的位置是:首页 >  其他

当前栏目

2021年最新最全Flink系列教程__Flink容错机制(五)

2023-04-18 12:56:37 时间

day05_Flink容错机制

今日目标

  • Flink容错机制之Checkpoint
  • Flink容错机制之重启策略
  • 存储介质StateBackend
  • Checkpoint 配置方式
  • 状态恢复和重启策略
  • Savepoint手动重启并恢复
  • 并行度设置

Flink状态管理

  • 状态就是基于 key 或者 算子 operator 的中间结果
  • Flink state 分为两种 : Managed state - 托管状态 , Raw state - 原始状态
  • Managed state 分为 两种:
    1. keyed state 基于 key 上的状态 支持的数据结构 valueState listState mapState broadcastState
    2. operator state 基于操作的状态 字节数组, ListState

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 手动重启并恢复

并行度设置

  • 并行度设置四种
    1. 算子级别
    2. 全局并行度
    3. 客户端(黑窗口)并行度
    4. 配置文件设置
  • 优先级
    1. 算子级别 => 2. 全局的并行度设置 => 3.客户端设置并行度 => 4.配置文件并行度