apache-flink - flink 如何将环境变量传递给作业或集群?
问题描述
例如,在 Spark 中,我们可以通过以下方式将环境变量设置为 executor job-wisely
spark.executorEnv.VAR=xxx
在flink中可以吗?如果不能通过作业设置,也接受集群设置。
我什至尝试通过export VAR=xxx
in设置变量$FLINK_HOME/bin/config.sh
并重新启动集群,但仍然不起作用,似乎只能在主节点任务管理器中工作(我将主节点也设置为任务管理器),其他任务管理器没有使用设置的变量。
注意到这是关于系统环境变量的问题$PATH
,而不是 JVM 选项
解决方案
提供 env 变量的一种方法是通过配置文件env.java.opts
中的 config 属性,例如flink/conf/flink-conf.yaml
env.java.opts: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999
这提供了 java 选项来启动所有 Flink 进程的 JVM。有关详细信息,请参阅https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html#jvm-and-logging-options。
containerized.master.env.
另外,我自己没有尝试过,但似乎可以通过containerized.taskmanager.env.
配置属性转发自定义作业管理器/任务管理器环境变量:https ://ci.apache.org/projects/flink/flink- docs-stable/ops/config.html#forwarding-environment-variables:
containerized.master.env.
: 用于将自定义环境变量传递给 Flink 的 JobManager 进程的前缀。例如,要将 LD_LIBRARY_PATH 作为环境变量传递给containerized.master.env.LD_LIBRARY_PATH
JobManager,请在 flink-conf.yaml 中设置:“/usr/lib/native”。containerized.taskmanager.env.
:与上述类似,此配置前缀允许为工作人员(TaskManagers)设置自定义环境变量。
推荐阅读
- visual-studio-2017 - 如何在 Visual Studio 2017 中查找和使用新的语法高亮主题
- java - 如何处理背压法
- vb.net - 用于 vb.NET 的 MaskedTextBox 的 PromptChar 将提示显示为 mm:ss
- spring-boot - Spring boot - 自动装配依赖项时找不到Bean
- python - cx_oracle python 迭代
- c# - 为什么我无法配对我的 BLE 设备?
- php - How to convert Pdf file to byte array in php and send?
- php - PHPMailer 不发送邮件
- android - 图书馆让我的项目变慢
- ios - canOpenURL 当返回 false 时打印出不必要的错误消息