Данные, вычисляемые Spark, поступают из нескольких источников данных, таких как локальные файлы и HDFS. Большинство данных, вычисляемых Spark, поступают из HDFS. HDFS может считывать данные в большом масштабе для параллельных вычислений. После вычисления данные могут быть сохранены в HDFS.
Spark включает Driver и Executor. Driver планирует задачи, а Executor выполняет задачи.
Figure 1 показывает процесс чтения файла.
Figure 1 Процесс чтения файла

Процесс чтения файла выглядит следующим образом:
Рисунок 2 показывает процесс записи данных в файл.
Рисунок 2 Процесс записи файла

Процесс записи файла выглядит следующим образом:
Вычисления и планирование Spark могут быть реализованы с использованием режима Yarn. Spark использует вычислительные ресурсы, предоставляемые кластерами Yarn, и выполняет задачи распределённым способом. Spark на Yarn имеет два режима: Yarn-cluster и Yarn-client.
Рисунок 3 показывает работающий фреймворк Spark на Yarn-cluster.
Рисунок 3 Фреймворк работы Spark в Yarn‑кластер

Процесс реализации Spark в Yarn‑кластер:
ResourceManager выделяет контейнер ApplicationMaster, который взаимодействует с NodeManager и запускает executor в полученном контейнере. После запуска executor он регистрируется в драйвере и запрашивает задачи.
Рисунок 4 показывает работающий фреймворк Spark в Yarn‑кластерe.
Рисунок 4 Spark on Yarn-client операционный фреймворк

Spark on Yarn-client процесс реализации:
В режиме Yarn-client драйвер развертывается на клиенте и запускается на клиенте. В режиме Yarn-client клиент более ранней версии несовместим. Рекомендуется использовать режим Yarn-cluster.
ResourceManager выделяет контейнеры ApplicationMaster, который взаимодействует с соответствующими NodeManagers и запускает executors в полученных контейнерах. После запуска executors он регистрируется с drivers и подает запрос на задачи.
Запущенные контейнеры не приостанавливаются и ресурсы не освобождаются.