2013-05-06 8 views
12

Jaka jest różnica między Apache Helix i Hadoop YARN (MRv2). Czy ktoś ma doświadczenie z obydwoma technologiami? Czy ktoś może mi wyjaśnić zalety/wady Helix przez YARN i dlaczego faceci z LinkedIn opracowali własne zarządzanie klastrami zamiast używać YARN?Apache Helix kontra YARN

góry dzięki Tobi

Odpowiedz

36

Podczas Helix i przędzy zarówno zapewnienie możliwości zarządzania aplikacji rozproszonych, istnieją ważne różnice między nimi.

YARN zapewnia przede wszystkim możliwości zarządzania zasobami w klastrze maszyn, a jednocześnie wymaga od aplikacji pisania niestandardowej logiki w celu negocjowania zasobów od menedżera zasobów. Z drugiej strony, Helix zapewnia sposób deklaratywnego zarządzania stanem rozproszonych aplikacji, dzięki czemu aplikacje nie muszą wykonywać niestandardowej implementacji. W tej chwili Helix nie zapewnia możliwości zarządzania zasobami w taki sam sposób, jak YARN. Tak więc oba systemy są komplementarne.

Jako przykład załóżmy, że masz zestaw węzłów i chcesz uruchomić na nich kilka kontenerów.

  1. Przydzielanie pojemników między węzłami w oparciu o wykorzystanie zasobów
  2. kontenery startowe,
  3. monitora pojemnik, jeśli umrą restart pojemników

przędzy zapewnia ramy/maszyny do wykonania ww. Gdy masz pojemników, trzeba realizować następujące funkcje:

  1. partycjonowania i replikacji: Trzeba rozdzielać zadania do pojemników, ewentualnie przeznaczyć wiele zadań do każdego pojemnika. W przypadku nadmiarowości można przydzielić zadanie do wielu kontenerów.
  2. Zarządzanie państwem: zarządzaj stanem zadania
  3. Tolerancja błędu: Gdy kontener zawiedzie, możesz wybrać redystrybucję pracy wśród pozostałych kontenerów lub zrestartować kontener w zależności od wymagań SLA.
  4. Ekspansja klastra: możesz rozpocząć nowe kontenery, aby obsłużyć obciążenie, a następnie chcesz, aby zadanie zostało ponownie rozprowadzone.
  5. Throttling: Podczas wszystkich tych czynności może chcesz ograniczyć pewne operacje, takie jak ruch danych

Helix ułatwia osiągnąć powyższe cechy. W YARN trzeba napisać wzorzec aplikacji, aby to osiągnąć (przykładem takiej implementacji jest Master aplikacji dla map miaoop redukcji miejsc).

Helix został opracowany na LinkedIn do zarządzania rozproszonymi systemami danych w przestrzeni online/nearline. W tej przestrzeni po uruchomieniu kontenera działa on na zawsze, dopóki się nie zawiedzie. Gdy kontener zawiedzie, zadania mogą zostać rozdzielone między pozostałe kontenery.

YARN zawiera algorytmy planowania zasobów, które umożliwiają elastyczne i wydajne wykorzystanie dostępnego sprzętu w przypadku zadań krótkotrwałych, takich jak redukcja miejsc pracy na mapie.

+1

Dzięki za to wspaniałe wyjaśnienie !!! – Tobi

+0

Rzeczywiście, świetne wyjaśnienie! –