Hi~ 按你的问题顺序回答如下: 1. Flink中的RocksDB是支持保存到hdfs的,且支持的非常好,将rocksdb的存储路径设置为hdfs路径即可。 2. in-flight的数据是保存在本地磁盘的,仅当checkpoint的时候,才会将本地的状态拷贝到hdfs。而且checkpoint本身不会因为远程拷贝影响计算速度。 3. 多久备份一次,取决于你配置的checkpoint的间隔。每次checkpoint都会备份&远程拷贝。但请注意,默认配置下checkpoint会在作业停止后删除,这时候你需要手动触发savepoint,你当然也可以在作业运行过程中出发保存savepoint,savepoint的好处是不会随作业停止而删除,且可以让新作业基于savepoint启动,从而实现exactly-once或at-least的语义。 4. Flink提供多种状态后端,需要根据你的实际场景选择。但对于大状态和高可用场景,推荐rocksdb。具体的推荐还是多读下文档。
文档: https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/state_backends.html#rocksdb-state-backend-details https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/checkpoints.html https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/savepoints.html https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/large_state_tuning.html 祝好, By Soda On Tue, 29 Sep 2020 at 11:06, Michael Ran <[email protected]> wrote: > dear all : > 我们checkpoint 信息默认保存在rocksdb上,但是rocksdb > 是一个单机系统,性能OK,要做到不丢失还是要备份到hdfs分布式文件系统上。 > > > 问题是: > 1. 如果仅保存在rocksdb,那么单机物理损坏,数据是会丢失的。 > 2. 如果仅保存hdfs,那么性能可能跟不上 > 3.如果先保存到rocksdb,再定时备份到hdfs,那么是多久备份一次?中间出现物理损坏,还是会出现一端时间的丢失。 > 4. 这块的详细设计,和具体流程、场景有合适的文档推荐吗?怎么再性能和数据完整性上做考虑的
