Нет, бальзамам не требуется код приложения или zip-файл. Драйвер (мастер), в который было отправлено задание spark, нуждается только в zip-файле и исходном коде (содержащем метод main). Когда клиент отправляет искровое задание, происходит следующее:
- Программа-драйвер создает физический план выполнения из кода приложения spark. План выполнения состоит из этапов, и каждый этап содержит несколько единиц, которые называются задачами.
- Диспетчер кластеров распределяет ресурсы и запускает исполнителей в рабочих (подчиненных) на основе входных данных клиента.
- При надлежащем мониторинге программой драйвера задачи отправляются исполнителям, а исполнители выполняют задачи, назначенные программой драйвера.
- Когда основной метод завершается или вызывается
stop()
метод sparkContext, диспетчер кластеров завершает работу всех исполнителей и освобождает все ресурсы.
Все выполнение управляется программой драйвера и менеджером кластера. Исполнители в подчиненных зависят от драйвера программы для выполнения задачи. Поэтому исходный код или zip-файл не нужно копировать или передавать рабам.
Вот как работает искра:
https://spark.apache.org/docs/latest/cluster-overview.html
https://www.dezyre.com/article/apache-spark-architecture-explained-in-detail/338