【发布时间】:2014-04-09 02:05:06
【问题描述】:
是否可以使用相同的 ZooKeeper 实例来协调 Apache Kafka 和 Apache Hadoop 集群?如果是,ZooKeeper 的适当配置是什么?
谢谢!
【问题讨论】:
标签: hadoop apache-zookeeper apache-kafka
是否可以使用相同的 ZooKeeper 实例来协调 Apache Kafka 和 Apache Hadoop 集群?如果是,ZooKeeper 的适当配置是什么?
谢谢!
【问题讨论】:
标签: hadoop apache-zookeeper apache-kafka
Yes,据我了解,理想情况下应该有一个带有专用机器的 Zookeeper 集群,用于管理分布式系统中不同应用程序之间的协调。我会尝试在这里分享几点
由多个服务器组成的 zookeeper 集群通常被称为 ensemble,它基本上可以跟踪和共享应用程序的状态。例如,Kafka 使用它来提交偏移更改,以便在发生故障时它可以识别从哪里重新开始。
来自doc 页面:
Like the distributed processes it coordinates, ZooKeeper itself is intended to be replicated over a sets of hosts(合奏)。每当进行更改时,在将其写入到 ensemble 中的法定人数(至少一半)的服务器之前,它才会被认为是成功的。
现在
想象一下 Kafka 和 Hadoop 都有一个由 3 个 zookeeper 服务器组成的专用集群,如果两个集群中的任何一个节点出现故障,这将导致服务失败(ZK 基于简单多数投票工作,因此它最多可以容忍1 个节点故障使服务保持活动状态但不是 2)。相反,如果有One Single 5zk 服务器集群管理这两个应用程序,并且如果两个节点关闭,您仍然可以使用该服务。这不仅提供了更好的可靠性,还减少了硬件费用,而不是管理 6 个服务器只需要照顾5个。
【讨论】: