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

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

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

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

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