1

我已经使用 Amazon EC2 设置了 3 台服务器,并且每台服务器都使用以下 Zookeeper-config。

tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
server.1=server1address:2888:3888
server.2=server3address:2888:3888
server.3=server3address:2888:3888

我在每台服务器上启动 zookeeper,在服务器上启动 Solr 后,我在 Solr 中收到如下错误:

3766 [main] INFO  org.apache.solr.common.cloud.ConnectionManager  – Waiting for client to connect to ZooKeeper
3790 [main-SendThread(*serverAddress*:2181)] WARN  org.apache.zookeeper.ClientCnxn  – Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350)
    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)

这显然是因为 Zookeeper 没有正常运行。然后我发现zookeeper正在产生这个错误:

2013-06-09 08:00:57,953 [myid:1] - INFO  [ec2amazonaddress.com/ipaddress@amazon:QuorumCnxManager$Listener@493] - Received connection request /ipaddress:60855
2013-06-09 08:00:57,963 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@368] - Cannot open
 channel to 3 at election address ec2amazonaddress/ipaddress@amazon:
3888
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
        at java.net.Socket.connect(Socket.java:579)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:35
4)

所以问题出在 ZooKeeper 上。我所做的是在我之前先启动的服务器之前启动另一台服务器,然后它就开始工作了。但是,经过一些重新启动后,它不再起作用了。换句话说,似乎启动 ZK 服务器的顺序很重要。我能够看到一些最先启动的服务器立即进入了追随者模式而不是领导者模式,也许这就是原因。我已经删除并重新安装了我的整个设置,但问题仍然存在。

在启动 Zookeeper 之前,我检查了端口并杀死了使用端口 2181 和 2888/3888 的所有进程。令我困扰的是,这在之前的相同设置下工作。

希望你们中的一些人对这个问题有一些经验。也欢迎任何可能与无法连接到 ZK 服务器有关的建议

4

0 回答 0