Po co nam ZooKeeper w stosie Hadoop?

Jestem nowy w Hadoop/ZooKeeper. Nie mogę zrozumieć celu używania ZooKeeper z Hadoop, czy ZooKeeper zapisuje dane w Hadoop? Jeśli nie, to dlaczego używamy ZooKeeper z Hadoop?

Author: parrottsquawk, 2012-05-24

3 answers

Hadoop 1.x nie używa programu Zookeeper. HBase używa zookeepera nawet w Hadoop 1.instalacje X.

Hadoop zaadoptował również Zookeepera począwszy od wersji 2.0.

Celem Zookeepera jest zarządzanie klastrami. Jest to zgodne z ogólną filozofią * nix polegającą na używaniu mniejszych wyspecjalizowanych komponentów - tak więc komponenty Hadoop, które chcą możliwości klastrowania, polegają na Zookeeperze zamiast tworzyć własne.

Zookeeper jest rozproszoną pamięcią masową, która zapewnia następujące gwarancje (skopiowane z strony przegląd Zookeeper):

  • spójność Sekwencyjna-aktualizacje od klienta będą stosowane w rozkaz, aby zostały wysłane.
  • Atomicity-aktualizacje albo się powiodą albo porażka. Brak częściowych wyników.
  • pojedynczy obraz systemu-klient zobaczy ten sam widok usługi niezależnie od serwera, z którym się łączy za.
  • niezawodność - po zastosowaniu aktualizacji będzie ona trwała od tego czasu aż do klient nadpisuje aktualizację.
  • terminowość-klient widzi system z gwarancją aktualne w określonym czasie.

Możesz użyć ich do implementacji różnych " receptur ", które są wymagane do zarządzania klastrami, takimi jak blokady, wybory lidera itp.

Jeśli masz zamiar używać ZooKeeper samodzielnie, polecam spojrzeć na kurator z Netflix co ułatwia korzystanie z niego (np. implementują kilka przepisów po wyjęciu z pudełka)

 39
Author: Arnon Rotem-Gal-Oz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-11 08:22:20

Zookeeper rozwiązuje problem niezawodnej koordynacji rozproszonej, a hadoop jest systemem rozproszonym, prawda?

Jest świetny artykuł algorytm Paxos , który możesz przeczytać na ten temat.

 6
Author: xiaofeng.li,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-24 07:43:47

From zookeeper strona dokumentacji:

ZooKeeper to scentralizowana usługa do przechowywania informacji o konfiguracji, nazewnictwa, dostarczania rozproszonej synchronizacji i świadczenia usług grupowych. Wszystkie tego rodzaju usługi są wykorzystywane w jakiejś formie przez aplikacje rozproszone.

Za każdym razem, gdy są one implementowane, jest wiele pracy, która idzie w naprawie błędów i warunków wyścigowych, które są nieuniknione. Ze względu na trudności implementacja tego rodzaju usług, aplikacji początkowo zwykle na nich skąpi ,co czyni je kruchymi w obecności zmian i trudnymi do zarządzania. Nawet jeśli wykonywane są prawidłowo, różne implementacje tych usług prowadzą do złożoności zarządzania, gdy aplikacje są wdrażane.

From hadoop strona dokumentacji:

Projekt Apache ™ Hadoop ® rozwija oprogramowanie open-source do niezawodnych, skalowalnych, rozproszonych obliczeń.

The Apache Hadoop software library jest frameworkiem, który pozwala na rozproszone przetwarzanie dużych zbiorów danych w klastrach komputerów przy użyciu prostych modeli programowania

Odnośnie Twojego zapytania:

Po co nam ZooKeeper w Hadoop Stack?

Czynnikiem wiążącym jest rozproszone przetwarzanie i wysoka dostępność.

Np. Hadoop Namenode fail over process.

Hadoop high availability jest zaprojektowany wokół Active Namenode & Standby Namenode za niepowodzenie procesu. W żadnym momencie nie powinieneś mieć dwóch masterów (aktywnych nazw) w tym samym czasie.

From Apache documentation link on HDFSHighAvailabilityWithQJM :

Dla poprawnego działania klastra HA ważne jest, aby tylko jeden z Namenodów był aktywny w tym samym czasie. W przeciwnym razie stan przestrzeni nazw szybko uległby rozszczepieniu, ryzykując utratę danych lub inne nieprawidłowe wyniki. W celu zapewnienia tej własności i zapobieżenia tzw. "split-brain scenario", the JournalNodes pozwoli tylko jednemu Namenodowi być pisarzem na raz.

Podczas przełączania awaryjnego, NameNode, który ma stać się aktywny, przejmie po prostu rolę zapisu do JournalNodes, co skutecznie zapobiegnie kontynuowaniu drugiego NameNode w stanie aktywnym, umożliwiając nowemu aktywnemu bezpieczne kontynuowanie przełączania awaryjnego.

Zookeeper został użyty, aby uniknąć scenariusza podziału mózgu. Rolę Zookeepera można znaleźć w poniżej pytanie:

Jak działa proces przełączania awaryjnego Hadoop Namenode?

 3
Author: Ravindra babu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:16