rocksdb原理_Flink原理—神秘的状态

3f1c845fce931338b75f8a20d4834242.png

十万个为什么

  • state、checkpoint、savepoint 之间有什么关系

  • 在Flink1.11 中对状态相关的优化有哪些

  • state、checkpoint 、savepoint 存在的意义是什么

  • checkpoint 如何触发、如何设置

  • savepoint和checkpoint的关系

5ccbff364a3a58bcc3aed48271fa8094.png

State

d5967909a6da63ed81fe1cd94e3ef747.png

21762fb1fe71cfba0ccc5af22ae5e7e2.png

1、定义:

与时间相关的任务内部数据的快照

21762fb1fe71cfba0ccc5af22ae5e7e2.png

2、作用:

  • 每次计算需要基于上一次计算的结果,故通过state将每次计算的中间结果进行持久化

  • 出现错误需要从成功的检查点进行State的恢复

  • 增量计算,Failover这些机制都需要state的支撑。

5ccbff364a3a58bcc3aed48271fa8094.png

State Backends

d5967909a6da63ed81fe1cd94e3ef747.png

21762fb1fe71cfba0ccc5af22ae5e7e2.png

1、作用:

决定状态的存储格式以及状态在CheckPoint时持久化格式和方式

21762fb1fe71cfba0ccc5af22ae5e7e2.png

2、分类:

(1)MemoryStateBackend【全量快照】:

  • 以Java对象的形式存储在堆上

  • 适用于开发调试

(2)FsStateBackend【全量快照】:

  • 需配置 URL("hdfs://md:4010/checkpoints" 或 "file:///checkpoints")

  • 正在运行中的状态数据保存在 TaskManager 的内存中,故受制于GC

          CheckPoint 时,将状态快照写入到配置的文件系统目录中。

          少量的元数据信息存储到 JobManager 的内存中(高可用模式下,将其写入到 CheckPoint 的元数据文件中)

  • 异步快照可防止 CheckPoint 写状态时对数据处理造成阻塞。异步快照默认是开启的

new FsStateBackend(path, false); //可通过编码关闭

          FsStateBackend 适用场景:状态较大、窗口较长的 Job和 所有高可用的场景。

(3)RocksDBStateBackend【全量/异步快照】:

a、原理:

  • 需配置 URL("hdfs://md:4010/checkpoints" 或 "file:///checkpoints")

  • 正在运行中的状态数据保存在 RocksDB中,RocksDB默认将数据存储在 TaskManager 的数据目录,故RocksDB 的状态量仅受本地磁盘大小的限制。CheckPoint 时,整个 RocksDB被 checkpoint 到配置的文件系统目录中。少量的元数据信息存储到 JobManager 的内存中(高可用模式下,将其存储到 CheckP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值