Apache flink 在使用flink runner时,如何在apache beam中执行检查点?

Apache flink 在使用flink runner时,如何在apache beam中执行检查点?,apache-flink,apache-beam-io,apache-beam,apache-beam-kafkaio,Apache Flink,Apache Beam Io,Apache Beam,Apache Beam Kafkaio,我从一个未绑定的来源(卡夫卡)阅读,并将其字数写入其他卡夫卡主题。现在我想在beam管道中执行检查点。我已经按照ApacheBeam文档中的所有说明进行了操作,但即使在这之后也没有创建检查点目录 以下是用于管道的I的参数:- --runner=FlinkRunner --streaming=true --parallelism=2 --checkpointingInterval=1000 --checkpointTimeoutMillis=5000 --minPauseBetweenCheckp

我从一个未绑定的来源(卡夫卡)阅读,并将其字数写入其他卡夫卡主题。现在我想在beam管道中执行检查点。我已经按照ApacheBeam文档中的所有说明进行了操作,但即使在这之后也没有创建检查点目录

以下是用于管道的I的参数:-

--runner=FlinkRunner
--streaming=true
--parallelism=2
--checkpointingInterval=1000
--checkpointTimeoutMillis=5000
--minPauseBetweenCheckpoints=500
--externalizedCheckpointsEnabled=true
--retainExternalizedCheckpointsOnCancellation=true

有人能帮我解决检查点问题吗?

我已经研究过这个解决方案,所以一个是您可以在link cluster的flink-conf.yaml中更改checkpoint.state.dir路径,另一个是使用flinkPipelineOptions-

        @Description(
                "Sets the state backend factory to use in streaming mode. "
                        + "Defaults to the flink cluster's state.backend configuration.")
        Class<? extends FlinkStateBackendFactory> getStateBackendFactory();
        void setStateBackendFactory(Class<? extends FlinkStateBackendFactory> stateBackendFactory);

这将创建一个checkpointDir。您还需要为要启用的检查点设置checkpointinginterval值。

我知道它很旧,但希望同意您的答案。 我们在2019年建造了一个停靠的flink,并使用这些选项运行

--runner=FlinkRunner --streaming=true --checkpointingInterval=30000 --env=dev
我们在conf.yml中配置了rocksdb作为后端

--runner=FlinkRunner --streaming=true --checkpointingInterval=30000 --env=dev