Apache flink 可以通过编程方式设置flink`state.checkpoint.dir`吗?

Apache flink 可以通过编程方式设置flink`state.checkpoint.dir`吗?,apache-flink,flink-statefun,Apache Flink,Flink Statefun,我们有flink-conf.yaml用于项目中的本地运行。我们希望能够在本地运行flink进行测试。我们团队的一部分使用Mac电脑,另一部分使用PC电脑。我们希望将state.checkpoint.dir设置为某种普遍可接受的路径,最好是在用户的主目录下。问题是,是否可以根据我们正在运行的操作系统以编程方式设置它,如果不可以,在这个设置中是否有一个通用的有效快捷方式用于当前用户的主目录,如*NIX上的“~”?下面的示例演示了如何以编程方式设置Flink的配置设置: Configuration c

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

下面的示例演示了如何以编程方式设置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