Добавить файл conf в classpath в Google Dataproc - PullRequest
2 голосов
/ 04 октября 2019

Мы создаем приложение 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, но предоставить его отдельно, что я не могу получить работу.

Пробовал разные вещи, например

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

1 Ответ

1 голос
/ 08 октября 2019

Если --jars не работает, как предложено в этого ответа , вы можете попробовать init action . Сначала загрузите свою конфигурацию в GCS, затем напишите действие инициализации, чтобы загрузить его на виртуальные машины, поместив его в папку в classpath или обновив файл spark-env.sh, чтобы указать путь к конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...