Неизвестный планировщик управления ресурсами Hadoop Yarn

Hadoop

Yarn(Yet Another Resource Negotiator) — платформа планирования ресурсов, которая отвечает за выделение ресурсов и планирование вычислительных программ, таких как Spark и MapReduce, и не участвует во внутренней работе пользовательских программ. То же самое относится к архитектуре Master/Slave.

Следующий рисунок MapReduce отправлен Yarn для запуска в качестве примера, чтобы увидеть, какие основные компоненты Yarn в основном включает и роль каждого компонента:

1.jpg

Глобальный менеджер ресурсов (ResourceManager)

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

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

Менеджер узлов (NodeManager)

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

Диспетчер приложений (Мастер приложений)

Каждое приложение, отправленное пользователем, содержит менеджер приложений, который соответствует запуску MapReduce от имени MRAppMaster.Основные функции включают в себя:

1. Подайте заявку на ресурсы к глобальному менеджеру ресурсов

2. Далее распределяем полученные ресурсы на внутренние задачи

3. Общайтесь с обозревателем узлов, чтобы запускать/останавливать задачи.

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

Container

Его можно понимать как класс в Yarn, который инкапсулирует ресурсы, запрошенные узлом.Ресурсы, такие как память, ЦП и т. д., динамически генерируются в соответствии с требованиями приложения и являются базовой единицей разделения ресурсов в Yarn. На узле NodeManager одновременно существует несколько контейнеров. Каждая задача, отправляющая задание, выполняется в контейнере.

Планировщик пряжи

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

2.jpg

FIFOScheduler (планировщик «первым поступил — первым обслужен»): не поддерживает вытеснение. Если есть особенно медленная задача, это повлияет на другие задачи.

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

CapacityScheduler (планировщик емкости): очередь с иерархической структурой, каждой очереди выделяется определенная емкость (например, назначение небольших заданий и больших заданий в разные очереди), а одна очередь поддерживает FIFO внутри

Автор подчеркивает:

1. Yarn не знает механизма работы программы, представленной пользователем, и обеспечивает только планирование вычислительных ресурсов (пользовательская программа обращается за ресурсами к yarn, а yarn отвечает за их распределение)

2. Роль руководителя в Yarn — это ResourceManager, а конкретная роль, предоставляющая вычислительные ресурсы, — NodeManager.

3. Yarn полностью отделен от запущенной пользовательской программы, что означает, что на Yarn можно запускать различные типы распределенных вычислительных программ, таких как Spark, MapReduce, Storm, Tez и т. д., при условии, что есть запросы ресурсов, соответствующие Yarn. спецификации в этих технических рамках механизм

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

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

Статьи по Теме:

Распределенная файловая система HDFS

Несколько вопросов, которые вы должны знать о HDFS

MapReduce


обрати внимание наОфициальный аккаунт WeChat: обучение и обмен большими данными, получите больше технических галантерейных товаров