【发布时间】:2020-02-02 21:39:40
【问题描述】:
我们正在使用 HOCON 配置在 Scala 中构建 Spark 应用程序,该配置称为 application.conf。
如果我将application.conf 添加到我的 jar 文件并在 Google Dataproc 上开始工作,它可以正常工作:
gcloud dataproc jobs submit spark \
--cluster <clustername> \
--jar=gs://<bucketname>/<filename>.jar \
--region=<myregion> \
-- \
<some options>
我不想将application.conf 与我的 jar 文件捆绑在一起,而是单独提供,但我无法正常工作。
尝试了不同的东西,即
- 用
--jars=gs://<bucketname>/application.conf指定application.conf(应该根据this answer 工作) - 使用
--files=gs://<bucketname>/application.conf - 与 1. + 2. 相同,在集群的 Master 实例上使用
/tmp/中的应用程序 conf,然后使用file:///tmp/application.conf指定本地文件 - 使用
--properties=spark.driver.extraClassPath=gs://<bucketname>/application.conf为 spark 定义extraClassPath(以及用于执行程序)
使用所有这些选项我得到一个错误,它在配置中找不到密钥:
Exception in thread "main" com.typesafe.config.ConfigException$Missing: system properties: No configuration setting found for key 'xyz'
此错误通常表示 HOCON 配置中有错误(密钥 xyz 未在 HOCON 中定义)或 application.conf 不在类路径中。由于在我的 jar 文件中使用完全相同的配置,因此我认为是后者。
还有其他选项可以将application.conf 放在类路径中吗?
【问题讨论】:
标签: apache-spark google-cloud-dataproc hocon