Открыть сервис

YARN

YARN (Yet Another Resource Negotiator) — это компонент архитектуры Apache Hadoop, отвечающий за управление ресурсами кластера и планирование выполнения заданий. YARN является второй версией системы управления ресурсами в экосистеме Hadoop, пришедшей на смену классическому MapReduce, и выполняет функции системы распределённого управления ресурсами (Resource Management) и планировщика задач (Job Scheduler). YARN позволяет отделить логику обработки данных от управления вычислительными ресурсами, что обеспечивает поддержку различных парадигм обработки, включая не только MapReduce, но и потоковую обработку (Spark, Flink), итеративные вычисления и интерактивные запросы (Tez, Impala).

История

Проект Hadoop был создан в 2005 году на основе работ Google по распределённой файловой системе (GFS) и модели MapReduce. В ранних версиях Hadoop (до версии 1.x) единственным способом выполнения заданий была модель MapReduce, а управление ресурсами и планирование выполнялись непосредственно внутри JobTracker. С ростом объёмов данных и усложнением бизнес-задач стало очевидно, что монолитная архитектура JobTracker/ TaskTracker имеет ряд недостатков: ограниченная масштабируемость (JobTracker мог управлять не более чем 4000 узлов), низкая отказоустойчивость и невозможность параллельно запускать разные типы приложений.

В 2012 году сообщество Apache выпустило версию Hadoop 2.0, в которой была представлена архитектура YARN (Yet Another Resource Negotiator). Разработка велась под руководством Ардата Мерфи (Arun Murthy) и других участников проекта. YARN заменил классический JobTracker на более гибкую систему, состоящую из глобального менеджера ресурсов (ResourceManager) и периферийных менеджеров узлов (NodeManager). Это позволило повысить масштабируемость до 10 000 узлов и 100 000 контейнеров, а также обеспечить параллельную работу различных фреймворков обработки данных.

В 2017 году вышла версия Hadoop 3.0, в которой YARN был существенно доработан: улучшена поддержка контейнеров с GPU и FPGA, введена поддержка очередей с приоритетами и улучшено управление памятью.

Архитектура и компоненты

Архитектура YARN построена по принципу «мастер-раб» (master-slave). Основными компонентами являются:

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

При поступлении задания (например, MapReduce-задачи) в YARN происходит следующий процесс:

  1. Клиент отправляет задание ResourceManager.
  2. ResourceManager создаёт экземпляр Application Master, который запускается в контейнере на узле, выбранном планировщиком.
  3. Application Master регистрирует себя в ResourceManager и запрашивает необходимое количество контейнеров для выполнения параллельных задач (mappers / reducers).
  4. ResourceManager распределяет контейнеры на узлы, учитывая свободные ресурсы и политики планировщика.
  5. NodeManager на каждом узле запускает контейнеры с компонентами задачи (например, Mapper или Reducer).
  6. Application Master координирует выполнение задач, обрабатывает ошибки и управляет перезапусками.
  7. После завершения всех задач Application Master отправляет отчёт ResourceManager и завершает работу.

Таким образом, ResourceManager не участвует непосредственно в выполнении кода — он только распределяет ресурсы, что позволяет избежать перегрузки центрального узла.

Планировщики YARN

YARN поддерживает несколько типов планировщиков, каждый из которых ориентирован на разные сценарии:

Применение и значение

YARN является ключевым компонентом экосистемы Hadoop и используется в корпоративных дата-центрах для обработки больших объёмов данных (Big Data). Основные сценарии применения:

YARN широко применяется в крупных интернет-компаниях (Facebook, Yahoo!, LinkedIn, eBay), финансовых учреждениях и государственных структурах. В России YARN используется в платформах обработки данных крупных банков (Сбербанк, ВТБ), телекоммуникационных компаний (МТС, Ростелеком) и государственных информационных систем.

Критика и ограничения

Несмотря на широкое распространение, YARN подвергается критике по нескольким причинам:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →