Hadoop - Планировщики и типы планировщиков

Опубликовано: 18 Февраля, 2022

В Hadoop мы можем получать несколько заданий от разных клиентов для выполнения. Платформа Map-Reduce используется для параллельного выполнения нескольких задач в типичном кластере Hadoop для быстрой обработки больших наборов данных. Эта Map-Reduce Framework отвечает за планирование и мониторинг задач, выполняемых различными клиентами в кластере Hadoop. Но этот метод планирования заданий использовался до Hadoop 2 .

Теперь в Hadoop 2 есть YARN (еще один согласователь ресурсов). В YARN у нас есть отдельные демоны для выполнения планирования заданий, мониторинга и управления ресурсами в качестве мастера приложения, диспетчера узлов и диспетчера ресурсов соответственно.

Здесь Resource Manager - это главный демон, ответственный за отслеживание или предоставление ресурсов, требуемых любому приложению в кластере, а Node Manager - это подчиненный демон, который отслеживает и отслеживает ресурсы, используемые приложением, и отправляет обратную связь в Resource Manager.

Планировщики и диспетчер приложений - это 2 основных компонента диспетчера ресурсов. Планировщик в YARN полностью предназначен для планирования заданий, он не может отслеживать статус приложения. На основе требуемых ресурсов выполняется расписание или, можно сказать, расписание заданий.

В Hadoop есть в основном 3 типа планировщиков:

  1. Планировщик FIFO (первым пришел - первым обслужен).
  2. Планировщик емкости.
  3. Честный планировщик.

Эти планировщики на самом деле представляют собой своего рода алгоритм, который мы используем для планирования задач в кластере Hadoop, когда мы получаем запросы от разных клиентов.

Очередь заданий - это не что иное, как набор различных задач, которые мы получили от различных клиентов. Задачи доступны в очереди, и нам нужно запланировать эту задачу на основе наших требований.

1. Планировщик FIFO

Как следует из названия, FIFO, т. Е. «Первым пришел - первым обслужен», поэтому первыми будут обслуживаться задачи или приложение, которое идет первым. Это расписание по умолчанию, которое мы используем в Hadoop. Задачи помещаются в очередь, и задачи выполняются в порядке их отправки. В этом методе после того, как задание запланировано, вмешательство не допускается. Поэтому иногда высокоприоритетный процесс должен ждать долгое время, поскольку приоритет задачи не имеет значения в этом методе.

Преимущество:

  • Нет необходимости в настройке
  • Первым пришел, первым обслужен
  • просто выполнить

Недостаток:

  • Приоритет задачи не имеет значения, поэтому задания с высоким приоритетом нужно подождать.
  • Не подходит для общего кластера

2. Планировщик мощности

В Capacity Scheduler у нас есть несколько очередей заданий для планирования наших задач. Планировщик емкости позволяет нескольким пользователям совместно использовать кластер Hadoop большого размера. В Capacity Schedular, соответствующей каждой очереди заданий, мы предоставляем некоторые слоты или ресурсы кластера для выполнения операции задания. У каждой очереди заданий есть свои слоты для выполнения своей задачи. В случае, если у нас есть задачи для выполнения только в одной очереди, тогда задачи этой очереди могут получить доступ к слотам других очередей также, поскольку они могут использоваться бесплатно, и когда новая задача поступает в какую-то другую очередь, тогда задания выполняются в своих собственных слотах кластера заменяются собственной работой.

Планировщик емкости также обеспечивает уровень абстракции, чтобы знать, какой агент использует больше ресурсов кластера или слотов, чтобы отдельный пользователь или приложение не занимали несоответствующие или ненужные слоты в кластере. Емкость Schedular в основном содержит 3 типа очереди: корневую, родительскую и конечную, которые используются для представления кластера, организации или любой подгруппы, представления приложения соответственно.

Преимущество:

  • Лучше всего подходит для работы с несколькими клиентами или приоритетными заданиями в кластере Hadoop
  • Максимизирует пропускную способность в кластере Hadoop

Недостаток:

  • Более сложный
  • Не легко настроить для всех

3. Честный планировщик

Fair Scheduler очень похож на планировщик мощности. Учитывается приоритетность работы. С помощью Fair Scheduler приложения YARN могут совместно использовать ресурсы в большом кластере Hadoop, и эти ресурсы поддерживаются динамически, поэтому нет необходимости в предварительной емкости. Ресурсы распределяются таким образом, что все приложения в кластере получают равное количество времени. Fair Scheduler принимает решение о планировании на основе памяти, мы также можем настроить его для работы с процессором.

Как мы уже говорили, он похож на Capacity Scheduler, но главное, что следует отметить, это то, что в Fair Scheduler всякий раз, когда в той же очереди возникает какое-либо высокоприоритетное задание, задача обрабатывается параллельно, заменяя некоторую часть из уже выделенных слотов.

Преимущества:

  • Ресурсы, назначенные каждому приложению, зависят от его приоритета.
  • он может ограничить одновременное выполнение задачи в отдельном пуле или очереди.

Недостатки: Требуется конфигурация.