Flink - 如何将JVM选项传递给CLI

时间:2018-03-01 19:55:05

标签: java apache-flink flink-streaming

我想在我的工作中添加JVM选项。所以我在flink-conf.yml中添加了以下行:
env.java.opts: "-Dspring.config.location=/root/application.properties"

当我使用命令./start-local.sh开始flink时,我的JVM选项在jobmanager和taskmanager中很好地加载:

  • JobManager日志:
  • org.apache.flink.runtime.jobmanager.JobManager                -  JVM Options:
    org.apache.flink.runtime.jobmanager.JobManager                -     -Xms2048m
    org.apache.flink.runtime.jobmanager.JobManager                -     -Xmx2048m
    org.apache.flink.runtime.jobmanager.JobManager                -     -Dspring.config.location=/root/application.properties
    org.apache.flink.runtime.jobmanager.JobManager                -     -Dlog.file=/sicdbgagrv2/flink-1.4.0/log/flink-root-jobmanager-1-sic-dbg-agrv2.log
    org.apache.flink.runtime.jobmanager.JobManager                -     -Dlog4j.configuration=file:/sicdbgagrv2/flink-1.4.0/conf/log4j.properties
    org.apache.flink.runtime.jobmanager.JobManager                -     -Dlogback.configurationFile=file:/sicdbgagrv2/flink-1.4.0/conf/logback.xml
    

  • JobManager日志:
  • org.apache.flink.runtime.taskmanager.TaskManager              -  JVM Options:
    org.apache.flink.runtime.taskmanager.TaskManager              -     -Xms1024M
    org.apache.flink.runtime.taskmanager.TaskManager              -     -Xmx1024M
    org.apache.flink.runtime.taskmanager.TaskManager              -     -XX:MaxDirectMemorySize=8388607T
    org.apache.flink.runtime.taskmanager.TaskManager              -     -Dspring.config.location=/root/application.properties
    org.apache.flink.runtime.taskmanager.TaskManager              -     -Dlog.file=/sicdbgagrv2/flink-1.4.0/log/flink-root-taskmanager-0-sic-dbg-agrv2.log
    org.apache.flink.runtime.taskmanager.TaskManager              -     -Dlog4j.configuration=file:/sicdbgagrv2/flink-1.4.0/conf/log4j.properties
    org.apache.flink.runtime.taskmanager.TaskManager              -     -Dlogback.configurationFile=file:/sicdbgagrv2/flink-1.4.0/conf/logback.xml
    

    但是在CLI日志中,-Dspring.config.location=/root/application.properties似乎没有出现......

    org.apache.flink.client.CliFrontend                           -  JVM Options:
    org.apache.flink.client.CliFrontend                           -     -Dlog.file=/sicdbgagrv2/flink-1.4.0/log/flink-root-client-sic-dbg-agrv2.log
    org.apache.flink.client.CliFrontend                           -     -Dlog4j.configuration=file:/sicdbgagrv2/flink-1.4.0/conf/log4j-cli.properties
    org.apache.flink.client.CliFrontend                           -     -Dlogback.configurationFile=file:/sicdbgagrv2/flink-1.4.0/conf/logback.xml
    

    我的工作需要在启动flink操作符之前读取我的JVM选项(MapFunction,FilterFunction,...)

    如何添加我的JVM选项以使其显示在CLI日志中?

    1 个答案:

    答案 0 :(得分:0)

    最后我理解为什么JVM选项没有出现在CLI日志中:因为我没有在YARN集群模式下运行Flink(但是在独立集群中)。

    所以我做的不同:我使用了一个环境变量。