Hadoop YARN - краткое описание

Основной идеей YARN-a является разделение обязанностей менеджера ресурсов(resource management) кластера Hadoop, планировщика и системы мониторинга задач(job scheduling/monitoring) в отдельные службы(демоны).

Суть идеи в том, чтоб иметь глобального менеджера ресурсов (ResourceManager - RM) и отдельного планировщика(ApplicationMaster - AM) для каждого приложения

ResourceManager распределяет ресурсы между всеми приложениями в системе.

NodeManager - это служба, которая запущена на каждом сервере и ответственная за использование ресурсов (cpu, memory, disk, network) каждым контейнером, который запущен на этой ноде. Также эта служба посылает отчёты о потреблённых ресурсах к ResourceManager и Scheduler.

ApplicationMaster для приложения является библиотекой, которая заботится об выделении ресурсов для job-ов от ResourceManager-а и работает с NodeManager-ми для выполнения и мониторинга этих job-oв.

ResourceManager имеет 2-а основных компонента: Scheduler (планировщик) и ApplicationsManager.

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

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

ApplicationsManager ответственнен за обслуживание выделенных ресурсов для job-a, переговоры с доступным контейнером, который выполнит приложение и позаботится о рестарте контейнера ApplicationsManager-а в случае сбоя.

ApplicationMaster для каждого приложения ответственнен за выделение ресурсов планировщиком для контейнера в котором будет выполнятся приложение. Также он затрекает статус и прогресс выполнения приложения.

Полезные ссылки:

Коментарі

Популярні дописи з цього блогу

Минимальные требование для кластера Hadoop(with Spark)

Линейная регрессия простыми словами

Исправляем ошибку HDFS Under-Replicated Blocks