这是我第一次尝试使用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上运行但仍然遇到同样的问题。
答案 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台服务器。