【问题标题】:Apache Flink Dynamically setting JVM_OPT env.java.optsApache Flink 动态设置 JVM_OPT env.java.opts
【发布时间】:2017-05-12 14:23:26
【问题描述】:

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

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

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

$ flink run -m yarn-cluster -yn 2 -yst -yD env.java.opts="-DappName=myapp -DcId=mycId"

【问题讨论】:

    标签: apache-flink


    【解决方案1】:

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

    我已经打开了JIRA issue 来解决这个问题。

    更新

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

    【讨论】:

    • 已修复
    【解决方案2】:

    我尝试的一个简单解决方案是将 application.properties 中的配置参数作为参数传递,如下所示,

    ~/flink/bin/flink run app.jar --Brokers=Broker1:9093 --TopicName=some-topic
    

    您也可以将参数作为属性文件传递,

    ~/flink/bin/flink run app.jar -Dspring.config.name=<full-path>/application.properties
    

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 2022-07-05
      相关资源
      最近更新 更多