webtet 发表于 2019-1-8 07:11:43

zookeeper集群搭建中遇到的问题

  环境:
  VirtualBox:5.1.6
  Centos:7
  Java:1.8
  Zookeeper:3.4.9
  VirtualBox搭建的三个Zookeeper环境。
  

  连接被拒绝:
# zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
2016-11-01 22:20:40,226 - INFO - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT
2016-11-01 22:20:40,229 - INFO - Client environment:host.name=
2016-11-01 22:20:40,229 - INFO - Client environment:java.version=1.8.0_111
2016-11-01 22:20:40,230 - INFO - Client environment:java.vendor=Oracle Corporation
2016-11-01 22:20:40,231 - INFO - Client environment:java.home=/usr/java/jdk1.8.0_111/jre
2016-11-01 22:20:40,231 - INFO - Client environment:java.class.path=/opt/zookeeper-3.4.9/bin/../build/classes:/opt/zookeeper-3.4.9/bin/../build/lib/*.jar:/opt/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/opt/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/opt/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.9/bin/../conf:
2016-11-01 22:20:40,231 - INFO - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2016-11-01 22:20:40,231 - INFO - Client environment:java.io.tmpdir=/tmp
2016-11-01 22:20:40,231 - INFO - Client environment:java.compiler=
2016-11-01 22:20:40,231 - INFO - Client environment:os.name=Linux
2016-11-01 22:20:40,231 - INFO - Client environment:os.arch=amd64
2016-11-01 22:20:40,231 - INFO - Client environment:os.version=3.10.0-327.el7.x86_64
2016-11-01 22:20:40,231 - INFO - Client environment:user.name=root
2016-11-01 22:20:40,231 - INFO - Client environment:user.home=/root
2016-11-01 22:20:40,231 - INFO - Client environment:user.dir=/opt/zookeeper-3.4.9/bin
2016-11-01 22:20:40,232 - INFO - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@446cdf90
Welcome to ZooKeeper!
JLine support is enabled
2016-11-01 22:20:40,345 - INFO - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2016-11-01 22:20:40,505 - WARN - 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:717)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)  解决:重启Zookeeper服务 - zkServer.sh restart
  

  ZooKeeper集群IP不能正确映射
  三个虚拟机的单机模式都正常,例如:
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: standalone  从centos_1(192.168.1.156)中 ping centos_2(192.168.1.158)正常:

# ping -c 2 192.168.1.158
PING 192.168.1.158 (192.168.1.158) 56(84) bytes of data.
64 bytes from 192.168.1.158: icmp_seq=1 ttl=64 time=0.603 ms
64 bytes from 192.168.1.158: icmp_seq=2 ttl=64 time=0.795 ms
--- 192.168.1.158 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.603/0.699/0.795/0.096 ms  从centos_2(192.168.1.158)中 ping centos_3(192.168.1.159)正常:
# ping -c 2 192.168.1.159
PING 192.168.1.159 (192.168.1.159) 56(84) bytes of data.
64 bytes from 192.168.1.159: icmp_seq=1 ttl=64 time=0.561 ms
64 bytes from 192.168.1.159: icmp_seq=2 ttl=64 time=1.10 ms
--- 192.168.1.159 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.561/0.830/1.100/0.271 ms  配置文件:
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/zookeeper-3.4.9/data
# 日志文件
dataLogDir=/opt/zookeeper-3.4.9/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=centos_1:2888:3888server.2=centos_2:2888:3888server.3=centos_3:2888:3888  集群不能正常启动,下面是具体的log:
# cat zookeeper.out 2016-11-03 19:33:18,609 - INFO - Reading configuration from: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
2016-11-03 19:33:18,625 - INFO - Resolved hostname: centos_3 to address: centos_3/192.168.1.1592016-11-03 19:33:33,628 - INFO - Resolved hostname: centos_2 to address: centos_2/220.250.64.2252016-11-03 19:33:38,633 - INFO - Resolved hostname: centos_1 to address: centos_1/220.250.64.2252016-11-03 19:33:38,634 - INFO - Defaulting to majority quorums
2016-11-03 19:33:38,643 - INFO - autopurge.snapRetainCount set to 32016-11-03 19:33:38,646 - INFO - autopurge.purgeInterval set to 02016-11-03 19:33:38,646 - INFO - Purge task is not scheduled.
2016-11-03 19:33:38,663 - INFO - Starting quorum peer
2016-11-03 19:33:38,678 - INFO - binding to port 0.0.0.0/0.0.0.0:21812016-11-03 19:33:38,725 - INFO - tickTime set to 20002016-11-03 19:33:38,725 - INFO - minSessionTimeout set to -1
2016-11-03 19:33:38,725 - INFO - maxSessionTimeout set to -1
2016-11-03 19:33:38,725 - INFO - initLimit set to 102016-11-03 19:33:38,742 - INFO - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
2016-11-03 19:33:38,765 - INFO - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation
2016-11-03 19:33:38,778 - INFO - My election bind port: centos_1/220.250.64.225:38882016-11-03 19:33:38,780 - ERROR - Exception while listening
java.net.BindException: Cannot assign requested address (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.bind(ServerSocket.java:329)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:537)
2016-11-03 19:33:38,784 - INFO/0:0:0:0:0:0:0:0:2181:QuorumPeer@774] - LOOKING
2016-11-03 19:33:38,785 - INFO/0:0:0:0:0:0:0:0:2181:FastLeaderElection@818] - New election. My id =1, proposed zxid=0x0
2016-11-03 19:33:38,790 - INFO:FastLeaderElection@600] - Notification: 1 (message format version), 1 (n.leader), 0x0 (n.zxid), 0x1 (n.round), LOOKING (n.state), 1 (n.sid), 0x0 (n.peerEpoch) LOOKING (my state)
2016-11-03 19:33:39,782 - INFO - My election bind port: centos_1/220.250.64.225:38882016-11-03 19:33:39,782 - ERROR - Exception while listening
java.net.BindException: Cannot assign requested address (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.bind(ServerSocket.java:329)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:537)
2016-11-03 19:33:40,784 - INFO - My election bind port: centos_1/220.250.64.225:38882016-11-03 19:33:40,785 - ERROR - Exception while listening
java.net.BindException: Cannot assign requested address (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.bind(ServerSocket.java:329)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:537)
2016-11-03 19:33:41,785 - INFO - Leaving listener
2016-11-03 19:33:41,786 - ERROR - As I'm leaving the listener thread, I won't be able to participate in leader election any longer: centos_1/220.250.64.225:38882016-11-03 19:33:43,795 - WARN:QuorumCnxManager@400] - Cannot open channel to 2 at election address centos_2/220.250.64.225:3888java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:354)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
at java.lang.Thread.run(Thread.java:745)
2016-11-03 19:33:43,796 - INFO:QuorumPeer$QuorumServer@149] - Resolved hostname: centos_2 to address: centos_2/220.250.64.2252016-11-03 19:33:43,797 - WARN:QuorumCnxManager@400] - Cannot open channel to 3 at election address centos_3/192.168.1.159:3888java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:354)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)
at java.lang.Thread.run(Thread.java:745)
2016-11-03 19:33:43,798 - INFO:QuorumPeer$QuorumServer@149] - Resolved hostname: centos_3 to address: centos_3/192.168.1.1592016-11-03 19:33:48,802 - WARN/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 2 at election address centos_2/220.250.64.225:3888java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)
2016-11-03 19:33:48,803 - INFO/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@149] - Resolved hostname: centos_2 to address: centos_2/220.250.64.2252016-11-03 19:33:48,804 - INFO/0:0:0:0:0:0:0:0:2181:FastLeaderElection@852] - Notification time out: 4002016-11-03 19:33:54,206 - WARN/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 2 at election address centos_2/220.250.64.225:3888java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)
2016-11-03 19:33:54,208 - INFO/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@149] - Resolved hostname: centos_2 to address: centos_2/220.250.64.2252016-11-03 19:33:54,209 - WARN/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 3 at election address centos_3/192.168.1.159:3888java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)
2016-11-03 19:33:54,212 - INFO/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@149] - Resolved hostname: centos_3 to address: centos_3/192.168.1.1592016-11-03 19:33:54,212 - INFO/0:0:0:0:0:0:0:0:2181:FastLeaderElection@852] - Notification time out: 8002016-11-03 19:34:00,021 - WARN/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 2 at election address centos_2/220.250.64.225:3888java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)
2016-11-03 19:34:00,022 - INFO/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@149] - Resolved hostname: centos_2 to address: centos_2/220.250.64.2252016-11-03 19:34:00,024 - WARN/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 3 at election address centos_3/192.168.1.159:3888java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)
2016-11-03 19:34:00,024 - INFO/0:0:0:0:0:0:0:0:2181:QuorumPeer$QuorumServer@149] - Resolved hostname: centos_3 to address: centos_3/192.168.1.1592016-11-03 19:34:00,025 - INFO/0:0:0:0:0:0:0:0:2181:FastLeaderElection@852] - Notification time out: 16002016-11-03 19:34:06,632 - WARN/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 2 at election address centos_2/220.250.64.225:3888java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:426)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822)  解决:不能根据hostname正常解析ip,可直接把hostname替换为ip
  

  虚拟机中ping不通宿主机
  主机可Ping通三个虚拟机,虚拟机网络正常,但ping不通宿主机。
  

  解决:宿主机的防火墙设置问题.
  windows防火墙-》高级设置-》入站规则(双击文件和打印机共享-icmpv4-in)-》启用
http://s1.运维网.com/wyfs02/M02/8A/16/wKioL1gmoxaBGaeQAABL5GtLDHA660.png
http://s2.运维网.com/wyfs02/M00/8A/16/wKioL1gmoyiBgDoVAAAuvnyOj6g048.pnghttp://s2.运维网.com/wyfs02/M01/8A/1A/wKiom1gmoznR4D1dAAA8OunPyxI441.png



页: [1]
查看完整版本: zookeeper集群搭建中遇到的问题