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

我是Hadoop /

ZooKeeper的新手。我不明白将ZooKeeper与Hadoop结合使用的目的,ZooKeeper是否在Hadoop中写入数据?如果不是,那么为什么我们将ZooKeeper与Hadoop一起使用?

回答:

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

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

Zookeeper的目的是集群管理。这符合* nix使用较小的专用组件的一般哲学-因此,想要集群功能的Hadoop组件依赖Zookeeper而不是自己开发。

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

  • 顺序一致性-来自客户端的更新将按照发送的顺序应用。
  • 原子性-更新成功或失败。没有部分结果。
  • 单个系统映像-无论客户端连接到哪个服务器,客户端都将看到相同的服务视图。
  • 可靠性-应用更新后,此更新将一直持续到客户端覆盖更新为止。
  • 及时性-确保系统的客户视图在特定时间范围内是最新的。

您可以使用它们来实现集群管理所需的不同“ 配方

”,例如锁,领导者选举等。

如果您打算自己使用ZooKeeper,我建议您看一下

Netflix的Curator,它更易于使用(例如,他们开箱即用地实现了一些食谱)

以上是 为什么我们在Hadoop堆栈中需要ZooKeeper? 的全部内容, 来源链接: utcz.com/qa/432743.html

回到顶部