Flink:如何将额外的JVM选项传递给TaskManager和JobManager

时间:2017-10-27 14:22:06

标签: apache-flink flink-streaming

我正在尝试使用以下命令提交关于纱线的flink作业:

/usr/flink-1.3.2/bin/flink run -yd -yn 1 -ynm MyApp -ys 1 -yqu default -m yarn-cluster -c com.mycompany.Driver -j /usr/myapp.jar -Denv.java.opts="-Dzkconfig.parent /app-config_127.0.0.1 -Dzk.hosts localhost:2181 -Dsax.zookeeper.root /app"

我在flink客户端日志中获得了 env.java.opts ,但是当应用程序提交给Yarn时,这些Java选项将无法使用。由于没有额外的JVM选项,应用程序在与zookeeper连接时抛出异常。

请建议如何将动态属性传递给JM& TM在纱线上运行。

注意:我尝试将 env.java.opts 选项设置为 conf / flink-conf.yaml ,并且其工作正常。我需要一种通过flink run命令设置此选项的方法。

2 个答案:

答案 0 :(得分:0)

对于迟到的回复感到抱歉,但我相信你是YARN的start a long-running Flink session,那么你通过-Dxxx = yyy设置的参数将被转发到在YARN中创建的JM / TM。你尝试过这种方法吗?

答案 1 :(得分:0)

我认为您应该将-Denv.java.opts替换为-yD env.java.opts,以便您的命令变为:

/usr/flink-1.3.2/bin/flink run -yd -yn 1 -ynm MyApp -ys 1 -yqu default -m yarn-cluster -c com.mycompany.Driver -j /usr/myapp.jar -yD env.java.opts="-Dzkconfig.parent /app-config_127.0.0.1 -Dzk.hosts localhost:2181 -Dsax.zookeeper.root /app"