Мы рассмотрели Компоненты кластера Spark в моем последнем блоге. Пожалуйста, просмотрите его один раз, прежде чем переходить к этому блогу. Компоненты Spark Cluster и компонент Spark Application/Job — это две разные вещи, где Spark Cluster указывает физическую границу, как называются разные узлы и как разные компоненты несут ответственность за выполнение задания Spark, как Приложение/задание Spark указать виртуальную границу, где мы видим, как задание Spark разбивается на более мелкие задачи и как код, который мы написали для обработки данных, выполняется на уровне детализации, и как называются эти компоненты. .

Как вы знаете, Spark использует кластеры машин для обработки больших данных. Разбивая большую задачу на более мелкие задачи и распределяя работу. На нескольких машинах давайте посмотрим, как spark выполняет простое приложение. Секрет производительности Spark заключается в параллелизме. Каждое параллельное действие называется заданием. Затем каждое задание разбивается на этапы. Этапы — это набор упорядоченных шагов, необходимых для выполнения работы. Задачи создаются драйвером и назначаются разделу данных для обработки. Это наименьшие единицы работы.

Для запуска приложение Spark – это тело кода, написанное в API-интерфейсах Dataframe, Spark Sql и т. д., которое передается драйверу через команду spark submit. Водители получают это приложение, т.е. тело кода/инструкции. Драйвер смотрит на это, а затем решает, сколько заданий, в каком конкретном задании мне нужно выполнить это приложение. Комплексное приложение, в нем будет много заданий.

Рассмотрим аналогию в классе, где есть инструктор (водитель), у которого есть куча мешков с конфетами, и мы хотим подсчитать общее количество конфет. Чтобы помочь инструктору подсчитать конфеты, у него есть ученики (исполнители), которые могут помочь. То, что сделает инструктор, разделит этот 2 этапа на локальный и глобальный. В локальном подсчете инструктор выбирает пакеты с конфетами из кучи и раздает пакет среди учеников. Учащиеся начинают считать конфеты, здесь каждый пакет с конфетами представляет собой раздел, и ученик, работающий над этим конкретным пакетом, называется заданием. После того, как учащийся посчитает конфеты в соответствующем пакете, он получит свой местный счет, и если пакетов будет больше, инструктор отдаст эти пакеты тому ученику, который закончил считать из этих новых пакетов. Как только все сумки будут закончены, инструктор перейдет к общему счету, в котором ученик будет перемещаться по всем ученикам в классе, собирая счет, который у них есть, и в конечном итоге суммирует результат и передает его инструктору, завершая задание.

Разрушение терминологии Spark

Работа:

Приложение отправляется водителю через spark submit. После того, как водитель получает заявки. Он собирается разделить его на естественную иерархию должностей, этапов и задач. Где одно действие может привести к одному или нескольким заданиям. Сколько рабочих мест требуется, решает водитель, а также количество этапов.

Вся эта работа, которую мы здесь делаем, называется Работа. в приведенном выше примере классной комнаты задание представляет собой полное количество конфет.

Этап:

Этапы — это набор упорядоченных шагов, необходимых для выполнения работы. Этапы являются функциями алгоритма, который вы выполняете. Рассмотрим пример с двухступенчатой. Первый этап представлял локальный подсчет, а второй этап представлял глобальный подсчет.

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

Этап завершается только после выполнения последней задачи. Одна длительная задача может задержать весь этап.

Задачи:

Внутри этапов у нас есть задачи, которые являются наименьшей единицей работы. В классной терминологии каждый ученик, работающий над своим мешком с конфетами, называется задачами. Чем больше раздел, тем больше будет задача. Задачи выполняются параллельно.

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