Обмен технологиями

Основы больших данных: ключевые принципы архитектуры Yarn в Hadoop

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Каталог статей

Ключевые архитектурные принципы Yarn в Hadoop

1. Введение в пряжу

2. Архитектура пряжи

3. Процесс выполнения задачи Yarn

4. Характеристики и сценарии использования трех планировщиков ресурсов Yarn.


Ключевые архитектурные принципы Yarn в Hadoop

1. Введение в пряжу

Apache Hadoop Yarn (еще один переговорщик Reasource, еще один координатор ресурсов) — это менеджер ресурсов, используемый после версии Hadoop2.x, который может предоставить унифицированную платформу управления ресурсами для приложений верхнего уровня.

2. Архитектура пряжи

Yarn в основном состоит из ResourceManager, NodeManager, ApplicationMaster и Container.

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

ResourceManager является центральным менеджером в кластере Yarn и отвечает за распределение ресурсов и планирование всего кластера. ResourceManager отвечает за мониторинг состояния узлов NodeManager, сбор ресурсов кластера, обработку запросов ресурсов для задач, отправленных Клиентом, а также запуск и мониторинг ApplicationMaster для каждого приложения.

  • NodeManager

NodeManager отвечает за управление ресурсами (такими как память, ЦП и т. д.) на каждом узле и отправку отчетов в ResourceManager. Когда ResourceManager назначает контейнер (Контейнер) NodeManager, NodeManager отвечает за запуск контейнера и мониторинг его работы. Кроме того, NodeManager также получает команду ApplicationMaster для запуска контейнера (Контейнера) для каждого приложения.

  • ApplicationMaster

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

  • Контейнер

Контейнер Контейнер — это базовая исполнительная единица в Yarn, используемая для запуска задач приложения. Это виртуальная среда, содержащая код приложения, зависимости и ресурсы, необходимые для работы (память, ЦП, диск, сеть). Каждый контейнер назначается ApplicationMaster с помощью ResourceManager, а NodeManager запускается и управляется на соответствующем узле. Использование ресурсов контейнера отслеживается NodeManager и при необходимости сообщается ResourceManager.

Суть Yarn заключается в разделении функций управления ресурсами и планирования задач JobTracker в MR1, которые реализуются процессами ResourceManager и ApplicationMaster соответственно. ResourceManager отвечает за управление ресурсами и планирование всего кластера. планирование задач приложений, мониторинг задач и отказоустойчивость.

3. Процесс выполнения задачи Yarn

  1. Когда клиент отправляет задачу MR в Yarn, ресурсы задачи MR (Split, конфигурация ресурса, информация о пакете Jar) сначала будут загружены в HDFS.

  2. Клиент обращается к ResourceManager для запуска ApplicationMaster.

  3. ResourceManager выберет узел NodeManager, который относительно не занят, и уведомит узел о необходимости запуска ApplicationMaster (Контейнер).

  4. После запуска ApplicationMaster он загрузит информацию о ресурсах задачи MR из HDFS в локальную систему, а затем запросит ресурсы из ResourceManager для запуска задачи MR.

  5. ResourceManager возвращает список ресурсов в ApplicationMaster.

  6. Затем ApplicationMaster уведомляет соответствующий NodeManager о запуске Контейнера.

  7. После запуска Контейнера он будет обратно зарегистрирован в ApplicationMaster.

  8. ApplicationMaster отправляет задачу в контейнер для запуска, и задача выполняет бизнес-логику написанного нами кода.

4. Характеристики и сценарии использования трех планировщиков ресурсов Yarn.

  • Планировщик FIFO (Планировщик «первым пришел — первым вышел») , самый простой планировщик в Yarn. Планировщик FIFO поместит отправленные приложения в очередь «первым поступило — первым обслужено» в порядке отправки. При распределении ресурсов ресурсы сначала будут выделены верхнему приложению в очереди, а затем ресурсы будут выделены следующему после приложения. требования к ресурсам верхнего приложения удовлетворены. Приложение выделяет ресурсы и так далее. Когда этот тип планировщика планирует ресурсы, возможно, что приложение с большими требованиями к ресурсам займет все ресурсы кластера, что приведет к блокировке других приложений.

  • Планировщик мощности (Capacity Schduler) Это планировщик ресурсов по умолчанию, настроенный в Yarn, позволяющий нескольким арендаторам безопасно совместно использовать большой кластер. Планировщик мощности поддерживает настройку нескольких очередей ресурсов. Вы можете указать минимальное и максимальное соотношение используемых ресурсов для каждой очереди ресурсов. При распределении ресурсов приоритет отдается ресурсам с наименьшим соотношением «фактические ресурсы/бюджетные ресурсы». каждая очередь ресурсов использует внутреннюю стратегию планирования FIFO.

  • Планировщик ярмаркиЭто метод планирования ресурсов, который справедливо распределяет ресурсы Yarn для каждого приложения. Этот метод планирования позволяет всем приложениям получать равные доли ресурсов с течением времени. Его цель — справедливо распределить ресурсы между всеми приложениями в соответствии с определенными параметрами H.

Разница между планировщиками ресурсов FIFO, Емкости и Fair в Yarn заключается в следующем:

Планировщик ресурсов пряжиФункцииПрименимая сцена
планировщик ФИФО

1. Простой и понятный, дополнительная настройка не требуется.

2. Заявки обрабатываются в порядке их подачи (первым поступило, первым отправлено).

3. Не подходит для общих кластеров, каждое приложение должно дождаться своей очереди для запуска.

Неразделяемые кластеры, сценарии, не предъявляющие высоких требований к порядку выполнения задач. Обычно не используется в производственных средах.

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

(используется по умолчанию в Yarn с открытым исходным кодом)

1. Разрешить нескольким организациям совместно использовать ресурсы кластера, и у каждой организации будет выделенная очередь.

2. Поддержка иерархического разделения очередей и гибкой настройки ресурсов очередей.

3. Вы можете ограничить максимальную емкость очереди и смягчить конкуренцию за ресурсы.

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

Планировщик ярмарки

(используется CDH по умолчанию)

1. Справедливо распределяйте ресурсы между всеми запущенными приложениями и поддерживайте справедливое распределение ресурсов между несколькими очередями.

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

3. Поддержка функции преимущественного использования ресурсов для обеспечения справедливого распределения ресурсов.

1. Сценарии, в которых нескольким пользователям или организациям необходимо справедливо получать ресурсы в общем кластере.

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


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨