首页 > 解决方案 > 是否可以以编程方式设置 flink `state.checkpoint.dir`?

问题描述

我们flink-conf.yaml的项目中有本地运行。我们希望能够在本地运行 flink 进行测试。我们团队的一部分人使用 Mac,另一部分人使用 PC。我们想设置state.checkpoint.dir一些普遍接受的路径,最好在用户的主目录下。问题是,是否可以根据我们正在运行的操作系统以编程方式设置它,如果没有,在此设置中是否有当前用户主目录的通用快捷方式,如 *NIX 上的“~”?

标签: apache-flinkflink-statefun

解决方案


这是一个示例,展示了如何以编程方式设置 Flink 的配置设置:

Configuration conf = new Configuration();
conf.setString("state.checkpoints.dir", "file:///tmp/checkpoints");

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(conf);

System.getProperty("os.name")将告诉您客户端正在哪个操作系统上运行,对于本地运行应该足够好。

您还可以从命令行设置任何配置参数,例如,

flink run -Dstate.checkpoints.dir="/tmp/checkpoints" foo.jar

代码中的设置优先于命令行,命令行优先于flink-conf.yaml.


推荐阅读