我已经使用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服务器有关的建议也欢迎