zookeeper伪分布式配置与遇到的问题

  zookeeper提供了单机、分布式和伪分布式三种模式。

#zookeeper的默认配置文件zoo.cfg:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181

  条件有限,以伪分布式为例,将zookeeper文件夹复制三份,基本配置如下:

#第一个
tickTime=2000
initLimit=5
syncLimit=2
#我本机的目录
dataDir=D:/zookeeper/zookeeper-3.4.9-1/data
dataLogDir=D:/zookeeper/zookeeper-3.4.9-1/logs
clientPort=2181
server.1=localhost:7888:8888 
server.2=localhost:7889:8889 
server.3=localhost:7889:8890
#第二个
tickTime=2000
initLimit=5
syncLimit=2
#我本机的目录
dataDir=D:/zookeeper/zookeeper-3.4.9-2/data
dataLogDir=D:/zookeeper/zookeeper-3.4.9-2/logs
clientPort=2182
server.1=localhost:7888:8888 
server.2=localhost:7889:8889 
server.3=localhost:7889:8890
#第三个
tickTime=2000
initLimit=5
syncLimit=2
#我本机的目录
dataDir=D:/zookeeper/zookeeper-3.4.9-3/data
dataLogDir=D:/zookeeper/zookeeper-3.4.9-3/logs
clientPort=2183
server.1=localhost:7888:8888 
server.2=localhost:7889:8889 
server.3=localhost:7889:8890

  伪分布式和分布式配置的区别在于,伪分布式配置IP地址相同,端口号不同

  windows系统使用%zk_home%/bin目录下的zkServer.cmd启动zookeeper。由于在伪分布式下部署了三个节点,所以依次进入每个文件夹中,启动zookeeper。启动的时候可能会报错。

 1 2017-02-09 14:21:38,871 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid confi
 2 g, exiting abnormally
 3 org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error proce
 4 ssing D:\zookeeper\zookeeper-3.4.9-1\bin\..\conf\zoo.cfg
 5         at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerC
 6 onfig.java:144)
 7         at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(Qu
 8 orumPeerMain.java:101)
 9         at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain
10 .java:78)
11 Caused by: java.lang.IllegalArgumentException: D:\zookeeper\zookeeper-3.4.9-1\da
12 ta\myid file is missing
13         at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(Q
14 uorumPeerConfig.java:362)
15         at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerC
16 onfig.java:140)
17         ... 2 more
18 Invalid config, exiting abnormally

  错误原因是没有找到myid这个文件(如11、12行),需要在配置文件dataDir指定的目录下面(我的是:D:\zookeeper\zookeeper-3.4.9-1\data)建立一个myid文件,内容为1。依次在剩下的两个文件夹中也建立一个myid的文件,内容分别为2和3

  保存后,再次启动,发现又出现异常了,异常比较多,仅截取部分:

 1 2017-02-09 14:32:32,467 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:218
 2 1:QuorumCnxManager@400] - Cannot open channel to 3 at election address localhost
 3 /127.0.0.1:8890
 4 java.net.ConnectException: Connection refused: connect
 5         at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
 6         at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketI
 7 mpl.java:85)
 8         at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.ja
 9 va:350)
10         at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocket
11 Impl.java:206)
12         at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java
13 :188)
14         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
15         at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
16         at java.net.Socket.connect(Socket.java:589)
17         at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(Quorum
18 CnxManager.java:381)
19         at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(Quorum
20 CnxManager.java:426)
21         at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(F
22 astLeaderElection.java:843)
23         at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:822
24 )
25 2017-02-09 14:32:32,623 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:218
26 1:QuorumPeer$QuorumServer@149] - Resolved hostname: localhost to address: localh
27 ost/127.0.0.1
28 2017-02-09 14:32:32,623 [myid:1] - INFO  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:218
29 1:FastLeaderElection@852] - Notification time out: 12800
30 2017-02-09 14:32:46,468 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:218
31 1:QuorumCnxManager@400] - Cannot open channel to 2 at election address localhost
32 /127.0.0.1:8889

  这个异常其实可以忽略,仔细看2、3、31、32行打印出的信息就明白了。出现这个异常的原因是因为,现在只启动了一个zk节点,而在配置文件中却写了三个zk的地址,第一个zk节点还无法与剩下的两个节点进行通信,所以只要把三个zk节点都启动就没问题了

 

转载于:https://www.cnblogs.com/colddream/p/6382072.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值