apache flink webui设置环境变量

jdg4fx2g  于 2021-06-24  发布在  Flink
关注(0)|答案(2)|浏览(643)

我使用的是FlinkDocker1.4.0,我已经创建了一个scala作业在flink上运行。作业使用typesafe配置,该配置类似于:

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

问题是,如果我设置 KAFKA_SERVERS 在docker compose文件中启动jobmanager和taskmanager。但是我想使用程序参数从webui设置它们。我试图补充 env.java.opts="-DKAFKA_SERVERS=192.168.99.100:9092 如图所示,但在jar里看不到。有没有办法在flink webui中设置每个作业的环境变量?

iq3niunx

iq3niunx1#

不可能只为每个作业设置环境变量。
flink集群由taskmanagers和jobmanagers组成,它们是jvm进程。提交作业不会产生任何新的jvm进程,因此只能在clusterwise中设置env变量。
您可以尝试将此参数作为命令行参数传递。

tjvv9vkg

tjvv9vkg2#

它不会工作,因为taskmanager的jvm机器是在提交作业之前生成的,作业是在这些jvm中执行的,因此不能以这种方式传递环境变量。你放的盒子 env.java.opts="-DKAFKA_SERVERS=192.168.99.100:9092" 甚至被称为“程序选项”( args 传递给你的 main 函数)。
这个答案对此提供了更详细的解释:ApacheFlink-自定义java选项在job中不可识别,建议解决方案:
生成作业时不要依赖环境变量。

相关问题