本文中的myid的文件路径分别为:
/export/server/zookeeper/zk-1/zookeeper-3.4.6/data/
/export/server/zookeeper/zk-2/zookeeper-3.4.6/data/
/export/server/zookeeper/zk-3/zookeeper-3.4.6/data/
1.下载安装zookeeper 3.4.6版本
[root@VM_0_2_centos zk-1]# wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
[root@VM_0_2_centos zk-1] tar -zvxf zookeeper-3.4.6.tar.gz zk-1
2.配置zookeeper
2.1创建data、logs文件夹
[root@VM_0_2_centos zookeeper-3.4.12]# mkdir data
[root@VM_0_2_centos zookeeper-3.4.12]# mkdir logs
2.2在data目录下创建myid文件
文件内容为1
2.3修改zoo.cfg文件
在conf目录下拷贝 zoo_sample.cfg文件 重新命名为 zoo.cfg
[root@VM_0_2_centos conf]# cp zoo_sample.cfg zoo.cfg
内容为:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/export/server/zookeeper/zk-1/zookeeper-3.4.6/data/
dataLogDir=/export/server/zookeeper/zk-1/zookeeper-3.4.6/logs
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
注:
zk-2 目录下的
myid 文件内容为 2 clientPort=2182 dataDir、dataLogDir 中的zk-1 替换为zk-2
zk-3 目录下的
myid 文件内容为 3 clientPort=2183 dataDir、dataLogDir 中的zk-1 替换为zk-3
3.测试
测试启动、查看、停止zk
[root@VM_0_2_centos zk-1]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /export/server/zookeeper/zk-1/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@VM_0_2_centos zk-1]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /export/server/zookeeper/zk-1/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower
[root@VM_0_2_centos zk-1]# zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /export/server/zookeeper/zk-1/zookeeper-3.4.6/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
登录zookeeper
zk-1/zookeeper-3.4.6/bin/zkCli.sh -server localhost:2182
zk-1/zookeeper-3.4.6/bin/zkCli.sh 为客户端目录文件
-server 固定写法
localhost:2182 为zk的一个启动ip和端口号
这个安装步骤,3.4.6版本可以正常运行,需要三个全部启动成功才能正常查看状态,如果只启动了其中一个查到的状态会和下面的报错一样。
但是本人用3.4.12启动就会报错,
[root@VM_0_2_centos zookeeper]# zk-1/zookeeper-3.4.12/bin/zkServer.sh status
JMX enabled by default
Using config: /export/server/zookeeper/zk-1/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
查看日志:
2018-06-29 14:02:00,088 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@382] - Cannot open channel to 2 at election address /127.0.0.1:3889
java.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:368)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:341)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:449)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:430)
at java.lang.Thread.run(Thread.java:748)
2018-06-29 14:02:00,089 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@382] - Cannot open channel to 3 at election address /127.0.0.1:3890
java.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:368)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:341)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:449)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:430)
at java.lang.Thread.run(Thread.java:748)
在同一台机器上不存在端口权限问题,并且端口也已经开放。
这个错在3.4.12版本目前不知道什么原因。
并且zkCli.sh 也登陆不上去,一直连接中断。