2016-03-03 2 views
8

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

я подать заявление следующим образом::

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

ответ

11

Если вы проверяете the official documentation вы увидите, что 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 соответственно.

1

Как заявил zero323 вы можете использовать искровым представить команду из the link

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

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

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

При настройке ваш главный как:

def main(args: Array[String]) 

Тогда вы можете принять что-либо в качестве аргумента данного после .jar линии.

for more details

Смежные вопросы