[JiChu4]研究RocksDBStateBackend

网友投稿 591 2022-05-28

RocksDBStateBackend.png

RocksDB 是一个 key/value 的内存存储系统,和其他的 key/value 一样,先将状态放到内存中,如果内存快满时,则写入到磁盘中,

但需要注意 RocksDB 不支持同步的 Checkpoint,构造方法中没有同步快照这个选项。

不过 RocksDB 支持增量的 Checkpoint,意味着并不需要把所有 sst 文件上传到 Checkpoint 目录,仅需要上传新生成的 sst 文件即可。它的 Checkpoint 存储在外部文件系统(本地或HDFS),

image.png

状态信息存储在 RocksDB 数据库 (key-value 的数据存储服务), 最终保存在本地文件中

checkpoint 的时候将状态保存到指定的文件中 (HDFS 等文件系统)

缺点: 状态访问速度有所下降 优点: 可以存储超大量的状态信息 状态信息不会丢失 用于: 生产,可以存储超大量的状态信息

StateBackend配置方式

(1)单任务调整 修改当前任务代码 env.setStateBackend(new FsStateBackend("hdfs://namenode:9000/flink/checkpoints")); 或者new MemoryStateBackend() 或者new RocksDBStateBackend(filebackend, true);【需要添加第三方依赖】

如果使用RocksDBStateBackend方式,需要在pom.xml文件中,添加如下依赖

org.apache.flink flink-statebackend-rocksdb_2.11 ${flink.version}

(2)全局调整(不建议)

修改flink-conf.yaml state.backend: filesystem state.checkpoints.dir: hdfs://namenode:9000/flink/checkpoints 注意:state.backend的值可以是下面几种:jobmanager(MemoryStateBackend), filesystem(FsStateBackend), rocksdb(RocksDBStateBackend)

[JiChu4]研究RocksDBStateBackend

Maven

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【过关斩将】面试中不得不提的STAR原则
下一篇:Python 模块学习 logging(1)
相关文章