Apache Flink 动态设置JVM_OPT env.java.opts

joh*_*ohn 5 apache-flink

env.java.opts提交作业时是否可以设置自定义 JVM 选项而不在conf/flink-conf.yaml文件中指定它?

我问的原因是我想在我的 log4j 中使用一些自定义变量。我也在 YARN 上运行我的工作。

我已经使用 CLI 尝试了以下命令,它从=标志开始剥离了所有内容

$ flink run -m yarn-cluster -yn 2 -yst -yD env.java.opts="-DappName=myapp -DcId=mycId"
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Til*_*ann 2

目前,由于 Flink 解析动态属性的方式,这是不可能的。Flink 假设动态属性具有以下形式-D<KEY>=<VALUE>并且<VALUE>不包含任何=明显错误的形式。因此,目前您必须指定env.java.optsvia flink-conf.yaml

我打开了一个JIRA 问题来解决这个问题。

更新

Flink >= 1.3.0 和 >= 1.2.2 已修复该问题。