2015-10-05 4 views
1

Рассмотрите, есть ли 3 очереди верхнего уровня, q1, q2, q3.Cadacity SchedulerКак пряжа управляет дополнительными ресурсами в hadoop?

Пользователи q1 и q2 отправляют свои задания в соответствующие очереди, они гарантированно получат выделенные ресурсы. Теперь ресурсы, которые не используются q3, должны использоваться q1 и q2. Какие факторы учитывает пряжа при разделении дополнительных ресурсов? Кто (q1, q2) получает предпочтение?

ответ

0

Каждый очереди в качестве планировщика имеет 2 важные свойства (которые определены в процентах от общего объема ресурсов), которые определяют планирование:

  • Гарантированная мощность очереди (определяется конфигурацией "yain.scheduler.capacity. {queue-path} .capacity ")
  • Максимальная емкость, на которую может увеличиваться очередь (определяется конфигурацией " yarn.scheduler.capacity. {queue-path}. max-capacity "). Это ограничивает использование ресурсов очередью. Очередь не может превышать этот предел.

Планировщик мощности организует очереди в иерархическом порядке. Очереди двух типов "parent" и "leaf" очереди. Работы могут подаваться только на очереди .

"ROOT" queue является родительским для всех остальных очередей.

Каждая родительская очередь сортирует дочерние очереди в зависимости от спроса (какова текущая используемая емкость очереди? Недостаточно или недостаточно обслуживается?).

Для каждой очереди отношение (Используемая емкость/общая емкость кластера) дает указание об использовании очереди. Родительская очередь всегда дает приоритет самой младшей дочерней очереди..

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

В очереди листа, распределение мощности может произойти на основе определенных пользовательских пределов (для параметра конфигурации, например:. yarn.scheduler.capacity {очереди пути} .minimum-пользователем предельных процентов, определяет минимальная емкость очереди, гарантированная каждому пользователю).

В вашем примере, для простоты, предположим, что очереди q1, q2 и q3 находятся непосредственно под «ROOT». Как упоминалось ранее, родительская очередь хранит очереди отсортированными на основе их использования.

Поскольку q3 вообще не используется, родитель может распределять неиспользуемые ресурсы q3 между q1 и q2.

имеющиеся ресурсы распределяются на основе следующих факторов:

  1. Если оба q1 и q2 имеют достаточно ресурсов, чтобы продолжать планировать свою работу, то нет никакой необходимости распределять имеющиеся ресурсы от q3

  2. Если и q1, и q2 достигли максимальной емкости ("yarn.scheduler.capacity. {Queue-path} .maximum-capacity", эта конфигурация ограничивает эластичность очередей. Очереди не могут требовать больше, чем процент, этот параметр), то свободный res ources не предоставляется

  3. Если какая-либо один из очередей q1 или q2 находятся под обслужено, то свободные ресурсы выделяются в рамках обслужена очередь

  4. Если оба q1 и q2 под обслужены, то наибольшей приоритетной задачей является самая недоработанная очередь.

+0

спасибо @Manjunath Ballur – armourbear

Смежные вопросы