将 conf 文件添加到 Google Dataproc 中的类路径

Add conf file to classpath in Google Dataproc

我们正在使用 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 文件捆绑在一起,而是单独提供,但我无法开始工作。

尝试了不同的东西,即

  1. --jars=gs://<bucketname>/application.conf 指定 application.conf(这应该根据 工作)
  2. 使用--files=gs://<bucketname>/application.conf
  3. 与1.+2.相同,在集群的Master实例上/tmp/中应用conf,然后用file:///tmp/application.conf
  4. 指定本地文件
  5. 使用 --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 放在类路径中?

如果 --jars 没有按照 , you can try init action 中的建议工作。首先将您的配置上传到 GCS,然后编写一个初始化操作将其下载到 VM,将其放入类路径中的文件夹或更新 spark-env.sh 以包含配置路径。