Apache Spark: различия между режимами развертывания клиента и кластера

TL; DR: В чем разница между режимами развертывания клиента и кластера в автономном кластере Spark? Как мне установить, в каком режиме будет работать мое приложение?

У нас есть Spark Standalone кластер с тремя машинами, все с Spark 1.6.1:

Мастер-машина, на которой наше приложение запускается с помощьюspark-submit2 одинаковых рабочих машины

ОтДокументация искры, Я читаю:

(...) Для автономных кластеров Spark в настоящее время поддерживает два режима развертывания. В режиме клиента драйвер запускается в том же процессе, что и клиент, отправляющий приложение. Однако в режиме кластера драйвер запускается одним из рабочих процессов внутри кластера, и клиентский процесс завершается, как только он выполняет свою обязанность по отправке приложения, не дожидаясь его завершения.

Однако я не совсем понимаю практические различия, читая это, и не понимаю, каковы преимущества и недостатки различных режимов развертывания.

Кроме того, когда я запускаю свое приложение, используя start-submit, даже если я установил свойствоspark.submit.deployMode для «кластеризации» пользовательский интерфейс Spark для моего контекста показывает следующую запись:

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

1) Каковы практические различия между Spark Standaloneклиент режим развертывания икластер режим развертывания? Каковы за и против использования каждого?

2) Как выбрать приложение, на котором будет работать мое приложение, используяspark-submit?

Ответы на вопрос(3)

Ваш ответ на вопрос