【问题标题】:Typesafe-Config jvm options cannot be received in flinkflink 接收不到 Typesafe-Config jvm 选项
【发布时间】:2018-03-26 09:38:35
【问题描述】:

有一个使用类型安全配置的 Flink 项目,当我尝试使用命令 flink run xxxx.jar -Dconfig=XXXX -Dus=XXXX...独立集群中运行该项目时,我发现 JVM 选项(这里是 config us) 无法正确识别。通常,它应该替换application.conf中对应键的值XXXX

【问题讨论】:

  • 如何访问配置?请记住,flink 以分布式方式工作。因此,如果你想使用类型安全,你可以在提交到集群之前读取它并存储到一些可序列化的对象中。
  • @DawidWysakowicz 嘿,我有一个application.conf,程序可以从中读取数据,它已经被序列化了,我的问题是有一些数据(例如,密码),我不写它直接在文件中,所以我想在-D的帮助下通过jvm选项传递它,但显然,Flink无法在独立集群中接收它
  • 我了解它是如何工作的,但据我所知,类型安全配置会在您调用 Config.load 时读取文件。如果您在 TaskManager 上执行此操作,例如在MapFunction 中,它不再有权访问客户端的系统属性。
  • @DawidWysakowicz 嘿,Dawid,我想我找到了一个有趣的点,现在,Flink 仅在带有选项 -yD <arg> 的 YARN 集群上支持动态 JVM 参数,而不是在独立集群上。跨度>
  • @DawidWysakowicz 我认为,用于访问TaskManager中的系统属性,不会涉及,因为它不接收这些属性

标签: apache-flink typesafe-config


【解决方案1】:

使用

ParameterTool parameter = ParameterTool.fromSystemProperties();

访问您的configus 参数。

将配置值放入 ParameterTool:

https://ci.apache.org/projects/flink/flink-docs-master/dev/best_practices.html#getting-your-configuration-values-into-the-parametertool

【讨论】:

  • 嘿,Alex,谢谢你的回答,但我想要的不是代码。在 lightbend/config 中,用户可以使用 Java 系统属性覆盖配置,这意味着我不需要编写代码来获取这些参数,不是吗?
猜你喜欢
  • 2014-01-02
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-21
相关资源
最近更新 更多