моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Каталог статей
Ключевые архитектурные принципы Yarn в Hadoop
3. Процесс выполнения задачи Yarn
4. Характеристики и сценарии использования трех планировщиков ресурсов Yarn.
Apache Hadoop Yarn (еще один переговорщик Reasource, еще один координатор ресурсов) — это менеджер ресурсов, используемый после версии Hadoop2.x, который может предоставить унифицированную платформу управления ресурсами для приложений верхнего уровня.
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 отвечает за управление ресурсами и планирование всего кластера. планирование задач приложений, мониторинг задач и отказоустойчивость.
Когда клиент отправляет задачу MR в Yarn, ресурсы задачи MR (Split, конфигурация ресурса, информация о пакете Jar) сначала будут загружены в HDFS.
Клиент обращается к ResourceManager для запуска ApplicationMaster.
ResourceManager выберет узел NodeManager, который относительно не занят, и уведомит узел о необходимости запуска ApplicationMaster (Контейнер).
После запуска ApplicationMaster он загрузит информацию о ресурсах задачи MR из HDFS в локальную систему, а затем запросит ресурсы из ResourceManager для запуска задачи MR.
ResourceManager возвращает список ресурсов в ApplicationMaster.
Затем ApplicationMaster уведомляет соответствующий NodeManager о запуске Контейнера.
После запуска Контейнера он будет обратно зарегистрирован в ApplicationMaster.
ApplicationMaster отправляет задачу в контейнер для запуска, и задача выполняет бизнес-логику написанного нами кода.
Планировщик 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. Среды с высокими требованиями к управлению ресурсами на уровне очередей и стратегиям детального планирования. |