Вопрос по java – Зачем нам нужен ZooKeeper в стеке Hadoop?

29

Я новичок в Hadoop / ZooKeeper. Я не могу понять цель использования ZooKeeper с Hadoop, ZooKeeper записывает данные в Hadoop? Если нет, то почему мы используем ZooKeeper с Hadoop?

И где Zookeeper используется в Hadoop? Thomas Jungblut

Ваш Ответ

3   ответа
4

Отработник зоопарка страница документации:

ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications.

Each time they are implemented there is a lot of work that goes into fixing the bugs and race conditions that are inevitable. Because of the difficulty of implementing these kinds of services, applications initially usually skimp on them ,which make them brittle in the presence of change and difficult to manage. Even when done correctly, different implementations of these services lead to management complexity when the applications are deployed.

ОтHadoop страница документации:

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models

По вашему запросу:

Why do we need ZooKeeper in Hadoop Stack?

Обязательным фактором является распределенная обработка и высокая доступность.

например Hadoop Namenode отказоустойчивый процесс.

Высокая доступность Hadoop разработана вокруг Active Namenode & amp; Резервный Наменод для отработки отказа. В любой момент времени у вас не должно быть двух мастеров (активных Наменодов) одновременно.

Из документации Apache ссылка наHDFSHighAvailabilityWithQJM:

It is vital for the correct operation of an HA cluster that only one of the NameNodes be Active at a time. Otherwise, the namespace state would quickly diverge between the two, risking data loss or other incorrect results. In order to ensure this property and prevent the so-called “split-brain scenario,” the JournalNodes will only ever allow a single NameNode to be a writer at a time.

During a failover, the NameNode which is to become active will simply take over the role of writing to the JournalNodes, which will effectively prevent the other NameNode from continuing in the Active state, allowing the new Active to safely proceed with failover.

Zookeeper использовался, чтобы избежать сплит - мозгового сценария. Вы можете найти роль Zookeeper в следующем вопросе:

Как работает процесс отработки отказа Hadoop Namenode?

7

Zookeeper решает проблему надежной распределенной координации, а hadoop - это распределенная система, верно?

Там отличная статьяАлгоритм Паксоса что вы можете прочитать на эту тему.

переполнение стека 101: в большинстве случаев чем короче, тем лучше
Для любого, кто находит Paxos трудным для понимания, Raft является более простым для понимания эквивалентом.
+1 для справки Паксос
43

Hadoop 1.x не использует Zookeeper. HBase использует zookeeper даже в установках Hadoop 1.x.

Hadoop также принял Zookeeper, начиная с версии 2.0.

Целью Zookeeper является управление кластерами. Это соответствует общей философии * nix использования меньших специализированных компонентов - поэтому компоненты Hadoop, которым нужны возможности кластеризации, полагаются на Zookeeper для этого, а не разрабатывают свои собственные.

Zookeeper - это распределенное хранилище, которое предоставляет следующие гарантии (скопировано изОбзорная страница Zookeeper):

  • Sequential Consistency - Updates from a client will be applied in the order that they were sent.
  • Atomicity - Updates either succeed or fail. No partial results.
  • Single System Image - A client will see the same view of the service regardless of the server that it connects to.
  • Reliability - Once an update has been applied, it will persist from that time forward until a client overwrites the update.
  • Timeliness - The clients view of the system is guaranteed to be up-to-date within a certain time bound.

Вы можете использовать их для реализации различных & quot;рецепты& Quot; необходимые для управления кластером, такие как блокировки, выбор лидера и т. д.

Если вы собираетесь использовать ZooKeeper самостоятельно, я рекомендую вам взглянуть наКуратор от Netflix что облегчает использование (например, они реализуют несколько рецептов из коробки)

Благодарю. Блог Cloudera был довольно информативным.
Когда вы говорите & apos; Hadoop также принял Zookeeper, начиная с версии 2.0. «Означает ли это, что zookeeper включен в дистрибутив hadoop версии 2.0 и далее?
Так как большая часть дистрибутива включала HBase, он был там до v.2. В V2. YARN также использует zookeeper для HA (на самом деле вы можете использовать менее надежные способы, но это рекомендуемый способ, см., Например,blog.cloudera.com/blog/2014/05/how-apache-hadoop-yarn-ha-works) поэтому я не думаю, что вы найдете или создадите дистрибутив без него

Похожие вопросы