Я пытаюсь понять, является ли драйвер Spark единственной точкой отказа при развертывании в кластерном режиме для Yarn. Поэтому я хотел бы лучше понять внутреннюю часть процесса отработки отказа, относящуюся к контейнеру YARN драйвера Spark в этом контексте.
Я знаю, что драйвер Spark будет работать в мастере приложений Spark внутри контейнера пряжи. При необходимости мастер приложения Spark запросит ресурсы у диспетчера ресурсов YARN. Но мне не удалось найти документ с достаточно подробной информацией о процессе отработки отказа в случае отказа контейнера YARN мастера приложений Spark (и драйвера Spark).
Я пытаюсь найти некоторые подробные ресурсы, которые могут позволить мне ответить на некоторые вопросы, относящиеся к следующему сценарию: Если хост-компьютер контейнера YARN, на котором работает Spark Application Master / Spark Driver, теряет сеть подключение на 1 час:
Создает ли YARN Resource Manager новый контейнер YARN с другим Spark Application Master / Spark Driver?
В этом случае (порождение нового контейнера YARN) запускает ли он драйвер Spark с нуля, если хотя бы 1 этап из 1 из Executors был завершен и уведомлен как таковой исходному драйверу до того, как он потерпел неудачу? Имеет ли значение здесь опция, используемая в persist ()? И будет ли новый Spark Driver знать, что исполнитель выполнил 1 этап? Поможет ли Тахион в этом сценарии?
Запускается ли процесс восстановления после сбоя, если сетевое подключение восстанавливается на хост-машине YARN Container исходного Spark Application Master? Я предполагаю, что этим поведением можно управлять из YARN, но я не знаю, что используется по умолчанию при развертывании SPARK в кластерном режиме.
Я был бы очень признателен, если бы вы могли указать мне на некоторые документы / веб-страницы, где подробно рассматривается Архитектура Spark в режиме пряжи-кластера и процесс аварийного переключения.