无法让ZooKeeper集群工作,选举永远不会发生

时间:2012-12-13 16:05:27

标签: java linux configuration hadoop apache-zookeeper

这是我第一次尝试使用ZooKeeper,虽然我可以轻松地将其设置为在一台机器上运行,但让它在两台机器的集群中运行却根本无法运行。我认为我的配置可能有问题,但看起来我找不到它。

Here are the logs for server 1

Here are the logs for server 2

两台服务器的配置如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/var/lib/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=redis1:2888:3888
server.2=redis2:2888:3888

关于问题的任何想法?

我在运行OpenJDK 7的Ubuntu Linux机器中运行ZooKeeper 3.4.5。试图在OpenJDK 6上运行但仍然遇到同样的问题。

2 个答案:

答案 0 :(得分:1)

您的配置无效,具体为

server.1=redis1:2888:3888
server.2=redis1:2888:3888

如果你在同一台主机上运行两个实例,你需要为每个实例设置不同的端口号,那么更好的是

server.1=localhost:3181:4181
server.2=localhost:3182:4182

请注意,您应该为服务器的配置文件使用相同的服务器。#config。

另一种选择是使用像zkconf这样的东西来为你生成所有这些:http://bit.ly/aQP9Yi

答案 1 :(得分:0)

问题是我有一个甚至数量的节点,你需要一个奇数数量的节点才能运行选举(显然)。应该更新文档以涵盖这一点,因为基本示例显示正好配置了2台服务器。