gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:00:30 26 4
gpt4 key购买 nike

我是 Hadoop/ZooKeeper 的新手。我无法理解将 ZooKeeper 与 Hadoop 一起使用的目的,ZooKeeper 是否在 Hadoop 中写入数据?如果不是,那我们为什么要在 Hadoop 中使用 ZooKeeper?

最佳答案

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

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

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

Zookeeper 是一种分布式存储,提供以下保证(复制自 Zookeeper overview page):

  • 顺序一致性 - 来自客户端的更新将应用于发送它们的命令。
  • 原子性 - 更新要么成功,要么失败。没有部分结果。
  • 单一系统镜像 - 客户端将看到无论它连接的服务器如何,服务的相同 View 至。
  • 可靠性 - 应用更新后,它将持续存在从那时起,直到客户端覆盖更新。
  • 及时性 - 保证系统的客户 View 在一定时间内保持最新。

您可以使用它们来实现集群管理所需的不同“recipes”,例如锁、领导选举等。

如果你打算自己使用 ZooKeeper,我建议你看看 Curator from Netflix这使得它更易于使用(例如,他们实现了一些开箱即用的配方)

关于java - 为什么我们在 Hadoop 堆栈中需要 ZooKeeper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10732834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com