Apache Flink WebUI设置环境变量

时间:2018-03-09 00:14:49

标签: scala apache-flink

我正在使用flink-docker 1.4.0,我创建了一个scala作业,可以在Flink上运行。该作业使用类似于以下内容的类型安全配置:

servers = "localhost:9092"
servers = ${?KAFKA_SERVERS}

如果我在docker-compose文件中设置KAFKA_SERVERS,启动jobmanager和taskmanager,问题就是它完美无缺。 但是我想使用Program Arguments从WebUI中设置它们。 我试图添加env.java.opts="-DKAFKA_SERVERS=192.168.99.100:9092 this image。但它在罐子里面是不可见的。有没有办法在Flink WebUI中为每个作业设置环境变量?

2 个答案:

答案 0 :(得分:1)

不能仅为每个作业设置环境变量。

Flink集群由作为jvm进程的Taskmanagers和Jobmanagers组成。提交作业不会产生任何新的jvm进程,因此您只能集群设置env变量。

您可以尝试将此参数作为命令行参数传递。

答案 1 :(得分:1)

由于TaskManager的JVM机器在提交作业之前生成并且作业在这些JVM中执行,因此无法工作,因此您无法以这种方式传递环境变量。您放置env.java.opts="-DKAFKA_SERVERS=192.168.99.100:9092"的框甚至称为“计划选项”(args已传递到您的main功能。

这个答案为此提供了更详细的解释: Apache Flink - custom java options are not recognized inside job 并建议解决方案:

在产生作业时不要转发环境变量。