如何使用Flink User Configuration展示application.conf中的应用配置值
Flink JobManager UI User Configuration 配置暴露方案
实现逻辑说明
Flink JobManager UI的User Configuration板块默认仅展示显式加入允许暴露列表的用户自定义配置,你可以通过以下步骤将application.conf中的配置值暴露到该板块:
步骤1:读取application.conf并映射为Flink配置
首先加载你的自定义配置文件,将需要暴露的配置项统一加上可识别的前缀(比如user.conf.),存入Flink的Configuration对象:
// Java 示例,使用Typesafe Config加载application.conf import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; import org.apache.flink.configuration.Configuration; Config appConfig = ConfigFactory.load(); Configuration flinkConfig = new Configuration(); // 遍历配置项,添加前缀后写入Flink配置 appConfig.entrySet().forEach(entry -> { String configKey = entry.getKey(); String configValue = entry.getValue().unwrapped().toString(); flinkConfig.setString("user.conf." + configKey, configValue); });
步骤2:配置允许暴露到UI的配置键
在Flink集群配置、或者作业提交参数中添加如下配置,指定允许在User Configuration中展示的配置键,支持通配符匹配:
# 允许所有前缀为user.conf和pipeline的配置展示在UI jobmanager.web.custom-configuration-allowed-keys: user.conf.*,pipeline.*
步骤3:绑定配置到Flink执行环境
将构造好的自定义配置传入Flink执行环境即可,作业启动后对应配置就会展示在User Configuration板块:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(flinkConfig);
如果是通过命令行提交作业,也可以直接用-D参数透传配置,示例:
flink run \ -Djobmanager.web.custom-configuration-allowed-keys=user.conf.* \ -Duser.conf.my.custom.param=testvalue \ your-job.jar
注意事项
- 禁止将密码、密钥等敏感配置加入允许暴露列表,避免信息泄露
jobmanager.web.custom-configuration-allowed-keys参数仅在Flink 1.13及以上版本支持,低版本Flink需要先升级到对应版本
界面示意图

内容的提问来源于stack exchange,提问作者Kiran Ashraf
相关产品推荐
相关产品推荐

