Программирование

Архитектура Hadoop YARN

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

YARN управляет ресурсами в кластерной среде. Вот и все? Разве до Hadoop 2.x у нас не было диспетчера ресурсов? Конечно, до Hadoop 2.x у нас был менеджер ресурсов, он назывался Job Tracker.

Итак, что такое Job Tracker?

JobTracker (JT) используется для управления обоими ресурсами кластера и выполнения задания MapR или MapReduce, что означает обработку данных. JT настраивает и отслеживает каждую запущенную задачу. Если задача не выполняется, она перераспределяет новый слот для повторного запуска задачи. По завершении задач он освобождает ресурсы и очищает память.

JT использует для выполнения множества задач, и у этого подхода также были некоторые недостатки. Я не работал над Hadoop 1.x, но попытался перечислить некоторые из них ниже.

Недостатки описанного выше подхода:

  1. Он состоит из одного компонента: JobTracker для выполнения множества действий, таких как управление ресурсами, планирование заданий, мониторинг заданий, изменение расписания заданий и т. Д., Что оказывает большое давление на один компонент.
  2. JobTracker - это единственная точка отказа, которая делает ресурс JT высокодоступным, поэтому в случае отказа JT все задачи будут перезагружены.
  3. Статическое распределение ресурсов, поскольку слоты map и reduce предопределены и зарезервированы, их нельзя использовать для других приложений, даже если слоты простаивают.

Выше приведены некоторые из основных недостатков способа работы Hadoop 1.x.

Итак, следующий вопрос, который приходит в голову, - как YARN решает эту задачу? ПРЯЖА разделяет уровень компонентов управления ресурсами и обработки данных.

В MapR1 все задачи управления и обработки ресурсов выполнялись JobTracker, но с выпуском Hadoop 2.x оба уровня были разделены, а для уровня управления ресурсами у нас есть YARN. Теперь Hadoop 2.x говорит, что для обработки данных используйте MapR, Spark, Tez и другие доступные среды обработки данных, тогда как YARN заботится о согласовании ресурсов.

Hadoop 2.x разделил компонент MapR на разные компоненты и, в конечном итоге, расширил возможности всей экосистемы, что привело к повышению доступности и масштабируемости.

ПРЯЖА и ее компоненты

YARN состоит из двух компонентов: диспетчера ресурсов и диспетчера узлов.

Подробная архитектура:

Давайте разберемся в различных компонентах:

Менеджер ресурсов

Spark работает с архитектурой Master-Slave, а диспетчер ресурсов присутствует на главном узле. RM является основным авторитетом и помогает в управлении такими ресурсами, как ОЗУ, использование ЦП, пропускная способность сети и т. Д., При выполнении различных задач. Диспетчер ресурсов поддерживает список запущенных приложений и список доступных ресурсов.

Диспетчер ресурсов состоит из двух компонентов: Планировщик и Диспетчер приложений.

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

Планировщик заботится о распределении ресурсов от имени менеджера ресурсов. Он распределяет ресурсы между различными приложениями MapR или Spark в зависимости от их доступности.

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

2. Диспетчер приложений:

Диспетчер приложений запускает зависящее от приложения главное приложение на подчиненном узле.

Примечание. Диспетчер приложений и Мастер приложений - это разные компоненты.

Application Manager согласовывает запуск контейнера Application Master и помогает в перезапуске в случае сбоя.

В двух словах, когда Resource Manager принимает новую отправку приложения MapR или Spark, одно из первоначальных решений, которые принимает планировщик, - это выбрать контейнер для запуска Application Master для этого конкретного приложения, а диспетчер приложений позаботится о его запуске.

Диспетчер узлов

До Hadoop 2.x использовалось фиксированное количество слотов для выполнения заданий Map и Reduce, но после Hadoop 2.x концепция слотов заменяется динамическим созданием / распределением контейнеров ресурсов.

Контейнер - это набор ресурсов, таких как ЦП, ОЗУ, ДИСК или жесткий диск, а также сетевой ввод-вывод, аналогичный серверу.

Диспетчер узлов - это агент инфраструктуры для каждой машины, отвечающий за хранение контейнеров, мониторинг их использования ресурсов (ЦП, ОЗУ, ДИСК и т. Д.) И сообщает об этом в имеющийся Планировщик. в диспетчере ресурсов. Диспетчер узлов присутствует в подчиненных системах.

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

Диспетчер ресурсов + Диспетчер узлов = Платформа вычислений

Мастер приложений

Мастер приложений зависит от приложения или для каждого приложения и запускается диспетчером приложений.

Application Master согласовывает ресурсы с Resource Manager и работает с Node Manager для выполнения и мониторинга задач. Application Master отвечает за весь жизненный цикл приложения.

Application Master отправляет запрос ресурса в Resource Manager и запрашивает контейнеры для выполнения задач приложения. После получения запроса от мастера приложения диспетчер ресурсов проверяет требования к ресурсам, проверяет доступность ресурсов и предоставляет контейнер для удовлетворения запроса ресурсов.

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

Application Master отслеживает ход выполнения приложения и его задач. Если происходит сбой, он запрашивает новый контейнер для запуска задачи и сообщает об ошибке.

После завершения выполнения приложения Application Master завершает работу и освобождает свой контейнер. Таким образом отмечается завершение выполнения.

Это все, что касается ПРЯЖИ и ее различных компонентов.

Резюме:

· Что такое ПРЯЖА

· Сравнение Hadoop до 2.x и после 2.x

· Как Yarn исправила проблемы до версии 2.x

· Компоненты, такие как Resource Manager, Node Manager, Application Master, и их функциональные возможности

· Как работает Application Master