Мы создаем приложение Spark в Scala с конфигурацией HOCON, конфигурация называется 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, но предоставить его отдельно, что я не могу получить работу.
Пробовал разные вещи, например
- Указание application.conf с
--jars=gs://<bucketname>/application.conf
(который должен работать в соответствии с этим ответом ) - Использование
--files=gs://<bucketname>/application.conf
- То же, что и 1. + 2. с приложением conf в
/tmp/
на главном экземпляре кластера, затем указание локального файла с помощью file:///tmp/application.conf
- Определение
extraClassPath
для искры с использованием --properties=spark.driver.extraClassPath=gs://<bucketname>/application.conf
(и для исполнителей)
При всех этих опциях я получаю сообщение об ошибке, он не может найти ключ в конфигурации:
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
на пути к классам?