Как передать внешние параметры через Spark submit

В моем приложении мне нужно подключиться к базе данных, поэтому мне нужно передать IP-адрес и имя базы данных при отправке приложения.

Я подаю заявку следующим образом: :

./spark-submit --class class name --master spark://localhost:7077 \
--deploy-mode client /home/hadoop/myjar.jar

person ROOT    schedule 03.03.2016    source источник


Ответы (2)


Если вы посмотрите официальную документацию вы увидите, что spark-submit имеет следующий синтаксис:

./bin/spark-submit \
  --class <main-class>
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]

Вы можете использовать либо application-arguments, либо conf для передачи необходимой конфигурации основному методу и SparkConf соответственно.

person zero323    schedule 04.03.2016

Как указано в zero323, вы можете использовать команду spark-submit из ссылка

  ./bin/spark-submit \
  --class <main-class>
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]

Здесь conf используется для передачи конфигураций, связанных со Spark, которые необходимы для запуска приложения как любое конкретное свойство (память исполнителя), или если вы хотите переопределить свойство по умолчанию, установленное в Spark-default.conf.

Что касается вашего варианта использования, вы хотите передать IP-адрес приложению для подключения к базе данных, тогда вы можете использовать [application-arguments], которые передаются после JAR.

Когда вы настраиваете свой основной как:

def main(args: Array[String])

Затем вы можете принять что угодно в качестве аргумента, указанного после строки .jar.

Подробнее см. .

person Ajit K'sagar    schedule 04.11.2016