无法在复制模式下设置zookeeper

时间:2011-10-15 14:58:01

标签: apache-zookeeper

我正在尝试在3个服务器的复制节点中设置zookeeper。

我的配置文件是这样的

tickTime=2000 
dataDir=/var/lib/zookeeper/ 
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888

我遇到了异常

QuorumPeer:/0:0:0:0:0:0:0:0:2181:FastLeaderElection@642] - Adding vote 

2009-09-23 15:30:28,099 - WARN  [WorkerSender Thread:QuorumCnxManager@336] - 
Cannot open channel to 3 at election address zoo1/172.21.31.159:3888 
java.net.ConnectException: Connection refused at sun.nio.ch.Net.connect(Native Method)> at 
sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:507) 
at java.nio.channels.SocketChannel.open(SocketChannel.java:146) 
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:

所有端口都是打开的,ssh,telnet也在工作。

由于

2 个答案:

答案 0 :(得分:6)

以下是快速核对清单:

  • 您有/var/lib/zookeeper/myid个文件吗?
  • 该文件中定义的ID是否与config中定义的机器名称/ IP同步(zoo1具有id 1等等?)

答案 1 :(得分:0)

不知道为什么,但是我必须在每个服务器的Zookeeper配置中使用0.0.0.0作为主机名。

即:

服务器1

myid

1

zoo.cfg

server.1=0.0.0.0:2888:3888
server.2=X.X.X.2:2888:3888
server.3=X.X.X.3:2888:3888

服务器2

myid

2

zoo.cfg

server.1=X.X.X.1:2888:3888
server.2=0.0.0.0:2888:3888
server.3=X.X.X.3:2888:3888

服务器3

myid

3

zoo.cfg

server.1=X.X.X.1:2888:3888
server.2=X.X.X.2:2888:3888
server.3=0.0.0.0:2888:3888