Spark: должен ли подчиненный сервер иметь исходный код, если он уже передан с параметром --py-files? - PullRequest
0 голосов
/ 14 января 2019

У меня есть кластер ec2, на котором запущено приложение pyspark, я передаю исходную программу с заархивированными файлами python при запуске spark-submit с использованием --py-files. Требуют ли ведомые устройства кода приложения, если мы уже передаем файлы?

1 Ответ

0 голосов
/ 14 января 2019

Нет, бальзамам не требуется код приложения или zip-файл. Драйвер (мастер), в который было отправлено задание spark, нуждается только в zip-файле и исходном коде (содержащем метод main). Когда клиент отправляет искровое задание, происходит следующее:

  1. Программа-драйвер создает физический план выполнения из кода приложения spark. План выполнения состоит из этапов, и каждый этап содержит несколько единиц, которые называются задачами.
  2. Диспетчер кластеров распределяет ресурсы и запускает исполнителей в рабочих (подчиненных) на основе входных данных клиента.
  3. При надлежащем мониторинге программой драйвера задачи отправляются исполнителям, а исполнители выполняют задачи, назначенные программой драйвера.
  4. Когда основной метод завершается или вызывается stop() метод sparkContext, диспетчер кластеров завершает работу всех исполнителей и освобождает все ресурсы.

Все выполнение управляется программой драйвера и менеджером кластера. Исполнители в подчиненных зависят от драйвера программы для выполнения задачи. Поэтому исходный код или zip-файл не нужно копировать или передавать рабам.
Вот как работает искра:

https://spark.apache.org/docs/latest/cluster-overview.html

https://www.dezyre.com/article/apache-spark-architecture-explained-in-detail/338

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...