Apache Helix против YARN

В чем разница между Apache Helix и Hadoop YARN (MRv2). Кто-нибудь имеет опыт работы с обеими технологиями? Может ли кто-нибудь объяснить мне преимущества/недостатки Helix над YARN и почему ребята LinkedIn разработали собственное управление кластерами вместо использования YARN?

Спасибо заранее Тоби

Ответ 1

Хотя Helix и YARN предоставляют возможности для управления распределенными приложениями, между ними существуют важные различия.

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

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

  • Выделить контейнеры между узлами на основе использования ресурсов
  • запустить контейнеры,
  • контейнер мониторинга, если они умеют перезапускать контейнеры.

YARN предоставляет структуру/механизмы для выполнения вышеуказанного. Когда у вас есть контейнеры, вы должны реализовать следующие функции:

  • Разделение и репликация: вам нужно распределять задачи в контейнерах, возможно, распределять несколько задач для каждого контейнера. Для избыточности вы могли бы выделить задачу для нескольких контейнеров.
  • Управление состоянием: управление состоянием задачи
  • Отказоустойчивость: при сбое контейнера вы можете либо перераспределить работу между оставшимися контейнерами, либо перезапустить контейнер в зависимости от требований SLA.
  • Расширение кластера: вы можете запускать новые контейнеры для обработки рабочей нагрузки, тогда вы хотите, чтобы задача была повторно распределена.
  • Дросселирование: во время всех этих операций вы можете ограничить некоторые операции, такие как перемещение данных.

Helix упрощает достижение вышеуказанных функций. В YARN нужно написать мастер приложения для их достижения (примером такой реализации является мастер приложений для хаоп-карты, уменьшающий задания).

Helix была разработана в LinkedIn для управления распределенными системами данных в онлайн-пространстве. В этом пространстве после запуска контейнера он работает навсегда, пока не сработает. Когда контейнер терпит неудачу, задачи могут быть перераспределены между оставшимися контейнерами.

YARN поставляется с алгоритмами планирования ресурсов, которые позволяют гибко и эффективно использовать доступное оборудование для выполнения коротких задач, таких как сокращение рабочих мест на карте.