В кластере Spark есть один процесс драйвера на машину или один процесс драйвера на кластер? - PullRequest
0 голосов
/ 09 апреля 2020

Я читаю Spark: исчерпывающее руководство и многому учусь.

Тем не менее, во время чтения меня смущает то, сколько процессов драйвера приходится на одно задание Spark , Когда текст впервые знакомит с процессами драйвера и исполнителя, это подразумевает, что для каждой машины существует драйвер, но при обсуждении широковещательных переменных звучит так, будто на кластер существует один драйвер.

Это потому, что текст говорит о процессе драйвера, отправляющем широковещательную переменную каждому узлу в кластере, чтобы он мог там быть кэширован. Это звучит так, как будто во всем кластере есть только один процесс драйвера, который отвечает за это.

Какой это процесс: один процесс драйвера на кластер или один на машину? Или это может быть и то и другое? Я думаю, что я что-то здесь упускаю.

1 Ответ

1 голос
/ 09 апреля 2020

В архитектуре Spark для приложения spark будет только один драйвер.

Драйвер spark, являющийся частью приложения spark, отвечает за создание сеанса spark. Драйвер искры имеет несколько обязанностей

  1. Он связывается с менеджером кластера (CM).
  2. Запрашивает ресурсы у CM для виртуальных машин-исполнителей искры.
  3. Преобразует все искры операций в вычислениях DAG, планирует их и распределяет их выполнение как задачи по всем исполнителям Spark.

Это взаимодействие с CM просто для получения ресурсов исполнителя Spark.

Итак, рабочий процесс запущенных приложений spark в кластере можно увидеть следующим образом:

  • Пользователь отправляет приложение с помощью spark-submit.
  • spark-submit запускает программу драйвера и вызывает указанный основной метод пользователем.
  • Программа драйвера связывается с менеджером кластера, чтобы запросить ресурсы для запуска исполнителя.
  • Менеджер кластера запускает исполнителей от имени программы драйвера.
  • Процесс драйвера запускается через пользовательское приложение. Основываясь на операциях RDD или набора данных в программе, драйвер отправляет работу исполнителям в виде задач.
  • Задачи выполняются в процессе исполнителя для вычисления и сохранения результата.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...