为什么我们需要Hadoop堆栈中的ZooKeeper?

我是Hadoop/ZooKeeper的新手。我无法理解在Hadoop中使用ZooKeeper的目的,是ZooKeeper在Hadoop中写入数据的目的?如果没有,那么为什么我们使用ZooKeeper和Hadoop?

0
额外 编辑
意见: 1
Zookeeper在Hadoop中使用的地方是什么?
额外 作者 Thomas Jungblut,

3 答案

zookeeper 文档页面:

ZooKeeper是一个集中服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。      每次执行它们都有很多工作可以解决不可避免的错误和竞争条件。由于实施这些服务的困难,最初的应用程序通常会吝啬,这使得它们在变化和难以管理的情况下变得脆弱。即使正确完成,这些服务的不同实现会导致部署应用程序时的管理复杂性。

hadoop 文档页面:

Apache™Hadoop®项目为开发可靠的,可扩展的分布式计算开发开源软件。     Apache Hadoop软件库是一个框架,它允许使用简单的编程模型在计算机集群中分布式处理大型数据集

关于你的查询:

为什么我们需要Hadoop Stack中的ZooKeeper?

绑定因素是分布式处理和高可用性。

例如Hadoop Namenode故障转移过程。

Hadoop high availability is designed around Active Namenode & Standby Namenode for fail over process. At any point of time, you should not have two masters ( active Namenodes) at same time.

HDFSHighAvailabilityWithQJM 上的Apache文档链接:

HA群集的正确操作对于一次只有一个NameNode处于活动状态至关重要。否则,命名空间状态将很快在两者之间发生分歧,从而可能导致数据丢失或其他不正确的结果。为了确保这个属性并防止所谓的“裂脑场景”,JournalNodes将永远只允许一个NameNode成为一个作家。

     

在故障转移期间,要成为活动状态的NameNode将简单地接管写入JournalNodes的角色,这将有效地防止另一个NameNode继续处于Active状态,从而允许新的Active安全地继续进行故障转移。

动物园管理员已被用来避免分裂脑部情况。你可以在下面的问题中找到Zookeeper的角色:

Hadoop Namenode故障转移过程如何工作?

0
额外

Hadoop 1.x不使用Zookeeper。即使在Hadoop 1.x安装中,HBase也会使用zookeeper。

从2.0版开始,Hadoop也采用了Zookeeper。

Zookeeper的目的是集群管理。这符合使用较小专用组件的* nix的一般理念 - 所以Hadoop的组件需要集群功能依赖于Zookeeper,而不是自行开发。

Zookeeper是一个分布式存储,提供以下保证(从 Zookeeper概述页复制) :

  • 顺序一致性 - 来自客户端的更新将被应用于 命令他们被发送。
  • 原子性 - 更新成功或 失败。没有部分结果。
  • 单个系统映像 - 客户端将看到 服务的相同视图,无论其连接的服务器如何 至。
  • 可靠性 - 一旦更新应用,它将会持续 从那时起,直到客户覆盖更新。
  • 及时性 - 客户对系统的看法是保证 在一定的时间范围内保持最新状态。

您可以使用这些来实现集群管理所需的不同“食谱”锁,领导选举等

如果您要自己使用ZooKeeper,我建议您查看 Netflix策展人,其中使它更易于使用(例如,他们实现了几个开箱即用的食谱)

0
额外
当你说'Hadoop采用Zookeeper以及2.0版本开始'时,这是否意味着zookeeper包含在hadoop发行版2.0以后?
额外 作者 user3282777,
谢谢。 Cloudera博客的内容非常丰富。
额外 作者 user3282777,
由于大多数发行版都包含HBase,因此它在v.2之前已经发布在V2中。 YARN还使用zookeeper进行HA(实际上,您可以使用不太可靠的方法,但推荐的方式请参阅 blog.cloudera.com/blog/2014/05/how-apache-hadoop-yarn-ha-wor‌ ks )所以我没有认为你会发现或创建一个分配没有它
额外 作者 Arnon Rotem-Gal-Oz,

Zookeeper解决了可靠的分布式协调问题,而hadoop是一个分布式系统,对吧?

有一篇优秀的论文 Paxos Algorithm 你可以阅读这个主题。

0
额外
堆栈溢出101:在大多数情况下,越短越好
额外 作者 Junchen Liu,
+1用于paxos参考
额外 作者 grinch,