Как работают Spark-приложения в кластере

Spark, фреймворк, Data Science, кластеры

В этой статье мы поговорим о том, как выполняются приложения, которые создавались на базе фреймворка Apache Spark. Читайте далее про архитектуру среды выполнения Spark, а также про компоненты, из которых она состоит.

Как устроены приложения Apache Spark: базовые компоненты архитектуры

Приложения, которые создаются на базе среды Spark, предназначены для выполнения в распределенных системах. Архитектура такой среды включает в себя следующие компоненты:

  • драйвер;
  • исполнители;
  • диспетчер кластера.

Каждый из этих компонентов подробнее мы рассмотрим далее.

Spark, фреймворк, Data Science, кластеры
Архитектура распределенного приложения Spark

 

 

Драйвер Spark

Драйвер Spark представляет собой процесс, который запускает метод main() нашего приложения. Этот процесс запускает код, который создает объект классов SparkContext и SparkConf. Когда запускается интерактивная оболочка Spark, создается экземпляр программы-драйвера:

from pyspark import SparkContext, SparkConf

conf = pyspark.SparkConf().setAppName('Application1').setMaster('local')

sc = pyspark.SparkContext(conf=conf)

Драйвер Spark преобразует пользовательское приложение на единицы исполнения, которые называются задачами (tasks). На верхнем уровне все приложения Spark создают наборы RDD на основе исходных данных, тем самым порождая новые RDD с применением некоторых преобразований и выполняют действия для сбора и последующего хранения данных. Таким образом, создается неявный ориентированный ациклический граф (Directed Acyclic Graph, DAG) всех операций. В процессе выполнения программа-драйвер преобразует этот граф в план выполнения. Драйвер Spark выполняет оптимизации преобразований и преобразует DAG в несколько этапов. Каждый такой этап состоит из нескольких задач. Задача считается наименьшей пользовательской единицей выполнения в Spark. Приложение может разбиваться на несколько сотен и даже тысяч заданий (в зависимости от функционала). На основе составленного плана со всеми задачами драйвер Spark контролирует передачу этих задач исполнителям. При запуске каждый исполнитель регистрирует себя в драйвере.

 

Исполнители

Исполнители в Spark – это рабочие процессы, которые ответственны за выполнение задач, присланных драйвером. Исполнители запускаются только один раз при запуске приложения Spark и продолжают свою работу на протяжении всего жизненного цикла программы. Они выполняют задачи, приходящие от драйвера и возвращают результат обратно драйверу Spark. Исполнители также обеспечивают хранение данных в памяти наборов RDD, которые кэшируются через службу Block Manager, функционирующую внутри каждого из исполнителей.

Spark, фреймворк, Data Science, кластеры
Связь драйвера с исполнителем

Диспетчеры кластеров

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

Spark, фреймворк, Data Science, кластеры
Распределение задач между исполнителями

Таким образом, распределенная архитектура приложения Spark позволяет выполнять ему огромные объемы задач благодаря параллельной работе узлов. Все это делает фреймворк Apache Spark весьма полезным средством для Data Scientist’а и разработчика Big Data приложений. В следующей статье мы поговорим про развертывание Spark-приложений.

Более подробно про применение Apache Spark в проектах анализа больших данных, разработки Big Data приложений и прочих прикладных областях Data Science вы узнаете на практических курсах по Spark в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве.

Записаться на курс

Смотреть раcписание

Добавить комментарий

Поиск по сайту