Apache flink Flink,方法setDbStoragePath在RocksDBStateBackend中做什么?

Apache flink Flink,方法setDbStoragePath在RocksDBStateBackend中做什么?,apache-flink,Apache Flink,我将flink 1.11与RocksDBStateBend一起使用,代码如下所示: rocksdbstatebend statebend=新的rocksdbstatebend(“hdfs:///flink-checkpoints“,对); setDbStoragePath(config.getString(“/tmp/rocksdb/”); 环境设置状态后端(状态后端); 我的问题是: 我的理解是,当设置了DbStoragePath时,Flink将在存储到hadoophdfs:///flink

我将flink 1.11与RocksDBStateBend一起使用,代码如下所示:

rocksdbstatebend statebend=新的rocksdbstatebend(“hdfs:///flink-checkpoints“,对);
setDbStoragePath(config.getString(“/tmp/rocksdb/”);
环境设置状态后端(状态后端);
我的问题是:

  • 我的理解是,当设置了
    DbStoragePath
    时,Flink将在存储到hadoop
    hdfs:///flink-checkpoints
    。是这样吗?如果它是正确的,我是否应该总是设置
    DbStoragePath
    以获得更好的性能
  • 因为Flink不会删除旧的检查点,所以我有一项定期清理旧检查点的工作。但如果我设置增量检查点,我不确定这样做是否安全

  • DbStoragePath
    是本地磁盘上RocksDB保持其工作状态的位置。默认情况下,将使用tmp目录。理想情况下,这应该是最快的可用磁盘,例如SSD。通常,这是通过
    state.backend.rocksdb.localdir
    配置的

    如果您使用的是增量检查点,则将
    DbStoragePath
    中的SST文件复制到
    状态.checkpoints.dir
    。否则,完整快照将写入检查点目录,并且不涉及
    DbStoragePath


    Flink会自动删除旧的检查点,除非在取消使用保留检查点的作业之后。如何安全地删除一个增量的、保留的检查点并不明显——您需要知道这些SST文件是否仍然引用了最新的检查点。您可以在用户邮件列表中寻求建议。

    谢谢!如果我没有设置取消时保留,我就不需要手动清理旧的检查点,对吗?是的,没错。