В чем разница между определением Spark Master в CLI и определением «master» в коде приложения Spark? - PullRequest
0 голосов
/ 08 февраля 2019

В чем разница между Spark-submit "--master", определенным в CLI, и кодом приложения spark, определяющим мастер?

В Spark мы можем указать главный URI в любом коде приложения, как показано ниже:

Spark Master configured in application code

Или мы можем указать главный URI в spark-submit в качестве аргумента параметра, как показано ниже:

Spark-submit master option

Имеет ли один приоритет над другим?Должны ли они договориться о контракте, поэтому у меня есть два экземпляра одного и того же URI, на которые есть ссылка в программе spark-submit и коде приложения spark, создающих SparkSession?Будет ли один переопределять другой?Что SparkSession будет делать по-другому с главным аргументом и что будет делать основной параметр spark-submit?

Любая помощь будет принята с благодарностью.Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Из документации Spark:

В общем случае

  • значения конфигурации, явно установленные для SparkConf, имеют наивысший приоритет,
  • , затем флаги передаются в spark-submit,
  • затем значения в файле значений по умолчанию.

Меня поражает, что наиболее гибкий подход - это флаги, передаваемые в spark-submit.

0 голосов
/ 08 февраля 2019

Цитировать официальную документацию

Сценарий spark-submit может загрузить значения конфигурации Spark по умолчанию из файла свойств и передать их в ваше приложение.По умолчанию он читает параметры из conf / spark-defaults.conf в каталоге Spark.Для получения более подробной информации см. Раздел о загрузке конфигураций по умолчанию.

Загрузка конфигураций Spark по умолчанию таким способом может устранить необходимость в определенных флагах для инициирования отправки.Например, если свойство spark.master установлено, вы можете безопасно опустить флаг --master в spark-submit.Как правило, значения конфигурации, явно заданные в SparkConf, имеют наивысший приоритет, затем флаги передаются в spark-submit, затем значения в файле значений по умолчанию.

Если вам когда-либо неясно, откуда поступают параметры конфигурации, вы можетераспечатайте детальную отладочную информацию, запустив spark-submit с параметром --verbose.

Таким образом, все они являются допустимыми параметрами, и существует четко определенная иерархия, которая определяет приоритет, если установлена ​​та же опцияв нескольких местах.От высшего к низшему:

  • Явные настройки в приложении.
  • Аргументы командной строки.
  • Опции из файлов конфигурации.
...