Apache Spark: различия между режимами развертывания клиента и кластера
TL; DR: В чем разница между режимами развертывания клиента и кластера в автономном кластере Spark? Как мне установить, в каком режиме будет работать мое приложение?
У нас есть Spark Standalone кластер с тремя машинами, все с Spark 1.6.1:
Мастер-машина, на которой наше приложение запускается с помощьюspark-submit
2 одинаковых рабочих машиныОтДокументация искры, Я читаю:
(...) Для автономных кластеров Spark в настоящее время поддерживает два режима развертывания. В режиме клиента драйвер запускается в том же процессе, что и клиент, отправляющий приложение. Однако в режиме кластера драйвер запускается одним из рабочих процессов внутри кластера, и клиентский процесс завершается, как только он выполняет свою обязанность по отправке приложения, не дожидаясь его завершения.
Однако я не совсем понимаю практические различия, читая это, и не понимаю, каковы преимущества и недостатки различных режимов развертывания.
Кроме того, когда я запускаю свое приложение, используя start-submit, даже если я установил свойствоspark.submit.deployMode
для «кластеризации» пользовательский интерфейс Spark для моего контекста показывает следующую запись:
Поэтому я не могу проверить оба режима, чтобы увидеть практические различия. При этом, мои вопросы:
1) Каковы практические различия между Spark Standaloneклиент режим развертывания икластер режим развертывания? Каковы за и против использования каждого?
2) Как выбрать приложение, на котором будет работать мое приложение, используяspark-submit
?