安装
下载文件: zookeeper-3.4.9.tar.gz
1. 解压
2. 修改/home/zookeeper/zookeeper-3.4.9/conf/zoo.cfg
:
```
[root@zk conf]# cat zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/zk_data
clientPort=2181
```
启动
[root@zk bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /home/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
通过下面查看,可以看到已经启动了:
[root@zk bin]# ps -ef | grep zookeeper root 25085 1 1 23:02 pts/1 00:00:00 java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /home/zookeeper/zookeeper-3.4.9/bin/../build/classes:/home/zookeeper/zookeeper-3.4.9/bin/../build/lib/*.jar:/home/zookeeper/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/zookeeper/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/home/zookeeper/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/home/zookeeper/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/home/zookeeper/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/home/zookeeper/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/home/zookeeper/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/home/zookeepe/zookeeper-3.4.9/bin/../conf: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /home/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg root 25122 24336 0 23:02 pts/1 00:00:00 grep --color=auto zookeeper [root@zk bin]# [root@zk bin]# netstat -antp | grep 2181 tcp6 0 0 :::2181 :::* LISTEN 25085/java
连接
[root@server128_98 bin]# ./zkCli.sh -server 192.168.128.97 Connecting to 192.168.128.97 2016-12-28 23:22:28,310 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT 2016-12-28 23:22:28,314 [myid:] - INFO [main:Environment@100] - Client environment:host.name=<NA> 2016-12-28 23:22:28,314 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_65 2016-12-28 23:22:28,316 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/home/zk/zookeeper-3.4.9/bin/../build/classes:/home/zk/zookeeper-3.4.9/bin/../build/lib/*.jar:/home/zk/zookeeper-3.4.9/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/zk/zookeeper-3.4.9/bin/../lib/slf4j-api-1.6.1.jar:/home/zk/zookeeper-3.4.9/bin/../lib/netty-3.10.5.Final.jar:/home/zk/zookeeper-3.4.9/bin/../lib/log4j-1.2.16.jar:/home/zk/zookeeper-3.4.9/bin/../lib/jline-0.9.94.jar:/home/zk/zookeeper-3.4.9/bin/../zookeeper-3.4.9.jar:/home/zk/zookeeper-3.4.9/bin/../src/java/lib/*.jar:/home/zk/zookeeper-3.4.9/bin/../conf: 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA> 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.10.0-327.el7.x86_64 2016-12-28 23:22:28,317 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root 2016-12-28 23:22:28,318 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root 2016-12-28 23:22:28,318 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/home/zk/zookeeper-3.4.9/bin 2016-12-28 23:22:28,319 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=192.168.128.97 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@3eb07fd3 Welcome to ZooKeeper! 2016-12-28 23:22:28,345 [myid:] - INFO [main-SendThread(192.168.128.97:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server 192.168.128.97/192.168.128.97:2181. Will not attempt to authenticate using SASL (unknown error) JLine support is enabled 2016-12-28 23:22:28,409 [myid:] - INFO [main-SendThread(192.168.128.97:2181):ClientCnxn$SendThread@876] - Socket connection established to 192.168.128.97/192.168.128.97:2181, initiating session 2016-12-28 23:22:28,415 [myid:] - INFO [main-SendThread(192.168.128.97:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 192.168.128.97/192.168.128.97:2181, sessionid = 0x15945f3f0af0002, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: 192.168.128.97(CONNECTED) 0]
基础使用
创建节点
[zk: 192.168.128.97(CONNECTED) 0] ls /
[zookeeper]
[zk: 192.168.128.97(CONNECTED) 1] create /node1 my
Created /node1
[zk: 192.168.128.97(CONNECTED) 2] ls /
[zookeeper, node1]
查看节点信息
[zk: 192.168.128.97(CONNECTED) 6] get /node1
my
cZxid = 0x6
ctime = Thu Dec 29 00:22:35 CST 2016
mZxid = 0x6
mtime = Thu Dec 29 00:22:35 CST 2016
pZxid = 0x6
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
修改节点关联的字符串
[zk: 192.168.128.97(CONNECTED) 8] get /node1
my
[zk: 192.168.128.97(CONNECTED) 7] set /node1 abc
[zk: 192.168.128.97(CONNECTED) 8] get /node1
abc
删除节点
[zk: 192.168.128.97(CONNECTED) 9] delete /node1
[zk: 192.168.128.97(CONNECTED) 10] ls /
[zookeeper]
FAQ
连接异常
远程连接./zkCli.sh -server 192.168.128.97
发现如下异常:
2016-12-28 23:17:48,125 [myid:] - INFO [main-SendThread(192.168.128.97:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server 192.168.128.97/192.168.128.97:2181. Will not attempt to authenticate using SASL (unknown error)
2016-12-28 23:17:48,126 [myid:] - WARN [main-SendThread(192.168.128.97:2181):ClientCnxn$SendThread@1162] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.NoRouteToHostException: No route to host
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)
一般都是由于网络导致的,请确认防火墙是否关闭:
systemctl status firewalld
systemctl status iptables
如果还不行,就看看selinux