Возьмите вас, чтобы испытать другую пряжу

интервью Большие данные

Всем привет, я старший программист.

С сегодняшнего дня мы открываем новую рубрику и в ближайшие дни поделимся с вами некоторыми знаниями о больших данных.

Сегодня мы начнем общаться с менеджером ресурсов YARN. Если вы заинтересованы в технологиях, связанных с большими данными, не забудьте обратить внимание!

первое впечатление

YARN — это общий модуль управления ресурсами, который может управлять и планировать ресурсы для различных приложений. На YARN можно запускать не только программы MapReduce, но и различные вычислительные платформы, такие как Spark и FLink. YARN обычно использует архитектуру Master/Slave, которая включает ResourceManager и NodeManager, ResourceManager отвечает за управление и планирование ресурсов в каждом NodeManager.

image.png

  1. ResourceManager(RM)

RM — это глобальный менеджер ресурсов, отвечающий за управление ресурсами и их распределение во всей системе. Он в основном состоит из планировщика (Scheduler) и диспетчера приложений (Applications Manager). Планировщик распределяет ресурсы в системе для каждого выполняемого задания на основе таких ограничений, как емкость и очереди. YARN предоставляет несколько различных планировщиков. Включая Fair Scheduler (справедливое планирование), FIFO Scheduler (первым пришел, первым ушел), планировщик мощностей (планирование мощности). Диспетчер приложений отвечает за управление всеми приложениями во всей системе, включая отправку приложений, согласование ресурсов с планировщиком для запуска ApplicationMaster, отслеживание рабочего состояния ApplicationMaster и его перезапуск в случае сбоя.

  1. ApplicationMaster(AM)

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

(1) Проведите переговоры с планировщиком RM для получения ресурсов.

(2), связаться с NM для запуска/остановки задач.

(3), затем назначьте полученные задачи внутренним задачам.

(4), следите за текущим статусом задачи.

  1. NodeManager(NM)

NM является менеджером ресурсов и задач на каждом узле, с одной стороны, он регулярно сообщает RM об использовании ресурсов на этом узле и рабочем состоянии каждого Контейнера. С другой стороны, он получает и обрабатывает запросы на запуск/остановку контейнера и т. д. от AM.

  1. Container

Контейнер — это абстракция ресурсов в YARN, которая инкапсулирует многомерные ресурсы на узле, такие как память, ЦП, диск, сеть и т. д. Когда AM запрашивает ресурсы у RM, ресурсы, возвращаемые RM для AM, представлены Container .

ПРЯЖА Рабочий процесс

Когда пользователь отправляет приложение в YARN, YARN запускает приложение в два этапа. Первый этап — запуск ApplicationMaster; второй этап — создание приложения ApplicationMaster, подача заявки на ресурсы для него и отслеживание всего его работающего процесса до его завершения.

Давайте взглянемВесь процесс задачи от подачи до выполнения до завершения.

1. Пользователь отправляет приложение в ResourceManager.

2. ResourceManager назначает первый контейнер приложению и связывается с соответствующим NodeManager, запрашивая запуск ApplicationMaster приложения в этом контейнере.

3. После запуска ApplicationMaster он регистрируется в ResourceManager. Затем он будет запрашивать ресурсы для каждой задачи и отслеживать ее статус выполнения до конца выполнения, то есть повторять шаги 4-7.

4. ApplicationMaster использует протокол RPC для запроса и получения ресурсов от ResourceManger.

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

6.NodeManger запускает соответствующую задачу.

7. Каждая задача сообщает ApplicationMaster о своем статусе и ходе выполнения через RPC, что позволяет ApplicationMaster отслеживать статус выполнения каждой задачи, чтобы задачу можно было перезапустить в случае сбоя задачи.

8. После выполнения приложения ApplicationMaster сначала выходит из ResourceManager и закрывается.

image.png

Модель планирования ресурсов

ПРЯЖА используетДвухуровневая модель планирования ресурсов. На первом уровне планировщик ресурсов в ResourceManager выделяет ресурсы каждому ApplicationMaster, а на втором уровне ApplicationMaster дополнительно выделяет ресурсы своим внутренним задачам. Здесь мы в основном говорим оПроблема планирования первого уровня. Стратегия планирования второго уровня полностью определяется пользовательским приложением.

В YARN процесс распределения ресурсов можно резюмировать как следующие 7 шагов.

  1. NodeManager периодически сообщает информацию об узле через пульсацию.

  2. Менеджер ресурсов возвращает диспетчеру узлов ответ такта, включая такую ​​информацию, как список выпущенных контейнеров.

  3. После того, как ResourceManager получит информацию от NodeManager, он инициирует событие Node_Update.

  4. После того, как ResourceScheduler получит событие Node_Update, он выделит ресурсы на узле (ресурсы высвобождаются на шаге 2) приложению в соответствии с определенной стратегией и поместит результат выделения в структуру данных памяти.

  5. Приложение ApplicationMaster периодически отправляет пульс в ResourceManager для получения последнего выделенного контейнера.

  6. После того, как ResourceManger получает информацию пульса от ApplicationMaster, выделенный для него Контейнер возвращается в ApplicationMaster в форме ответа пульса.

  7. После того, как ApplicationMaster получит список недавно выделенных контейнеров, он дополнительно распределит эти контейнеры для различных задач внутри себя.

image.png

Планировщик ресурсов занимается стратегией, принятой на шаге 4, то есть тем, как распределять простаивающие ресурсы на узлах между различными приложениями.

Планирование ресурсов

Планировщик ресурсов — это один из основных компонентов YARN, который отвечает за управление ресурсами и распределение всего кластера. Он предоставляет три доступных планировщика ресурсов: планировщик FIFO, планировщик емкости и планировщик Fair.

  1. FIFO Scheduler

Планировщик FIFO, то есть в порядке очереди, в соответствии с этим механизмом планирования все задания равномерно отправляются в очередь, а затем эти задания выполняются последовательно в порядке отправки.

  1. Capacity Scheduler

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

  1. Fair Scheduler

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

(1) ресурсы распределяются справедливо. В каждой очереди Fair Scheduler может выделять ресурсы приложениям в соответствии с политиками FIFO, Fair или DRF. Стратегия Fair используется по умолчанию. Это означает, что если в очереди одновременно запущены два приложения, каждое приложение получает 1/2 ресурсов.

(2), поддержка вытеснения ресурсов. Когда в очереди остаются ресурсы, планировщик будет делиться этими ресурсами с другими очередями, а когда в очередь подается новое приложение, планировщик восстанавливает для него ресурсы.

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

(4) Гибкая конфигурация политики планирования. Fair Scheduler предоставляет более разнообразную стратегию планирования, которая позволяет каждой очереди настраивать стратегию планирования индивидуально. В настоящее время существует три стратегии планирования на выбор, а именно FIFO, Fair и DRF.

(5), улучшить время отклика апплета. Благодаря алгоритму максимальной-минимальной справедливости небольшие задания могут быстро получать ресурсы и выполняться до завершения.

Наконец

На этом мы закончили говорить о менеджере ресурсов (YARN) в Hadoop, если он вам нравится, нажмите на него.

Для получения более интересных знаний, пожалуйста, обратите внимание на паблик** [Программист-старший]. Я подготовил для вас сотни учебных материалов, включая python, java, структуры данных и алгоритмы. При необходимости обратите внимание на общедоступный номер[старший программист],Ответить【Информация】**, вы можете получить ее.

Чем больше вы знаете, тем более открытым будет ваш разум. Увидимся в следующий раз.