我们通过bin目录下的./zkCli.sh
,就可以进入到Zookeeper的命令行界面,在里面就可以使用一些Zookeeper的命令了:
[root@localhost bin]# ls
README.txt zkCli.cmd zkEnv.cmd zkServer.cmd zkServer.sh zkTxnLogToolkit.sh
zkCleanup.sh zkCli.sh zkEnv.sh zkServer-initialize.sh zkTxnLogToolkit.cmd
[root@localhost bin]# ./zkCli.sh
Connecting to localhost:2181
2021-02-02 19:55:17,158 [myid:] - INFO [main:Environment@109] - Client environment:zookeeper.version=3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, built on 05/03/2019 12:07 GMT
2021-02-02 19:55:17,163 [myid:] - INFO [main:Environment@109] - Client environment:host.name=localhost
2021-02-02 19:55:17,163 [myid:] - INFO [main:Environment@109] - Client environment:java.version=1.8.0_131
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:java.vendor=Oracle Corporation
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:java.home=/usr/local/java/jdk1.8.0_131/jre
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:java.class.path=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/classes:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../build/classes:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/target/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../build/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-jute-3.5.5.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/zookeeper-3.5.5.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/netty-all-4.1.29.Final.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/log4j-1.2.17.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/json-simple-1.1.1.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jline-2.11.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-util-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-servlet-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-server-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-security-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-io-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jetty-http-9.4.17.v20190418.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/javax.servlet-api-3.1.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-databind-2.9.8.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-core-2.9.8.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/jackson-annotations-2.9.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/commons-cli-1.2.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../zookeeper-server/src/main/resources/lib/*.jar:/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf:.:/usr/local/java/jdk1.8.0_131/lib.tools.jar
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:java.io.tmpdir=/tmp
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:java.compiler=<NA>
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:os.name=Linux
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:os.arch=amd64
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:os.version=3.10.0-327.el7.x86_64
2021-02-02 19:55:17,166 [myid:] - INFO [main:Environment@109] - Client environment:user.name=root
2021-02-02 19:55:17,167 [myid:] - INFO [main:Environment@109] - Client environment:user.home=/root
2021-02-02 19:55:17,167 [myid:] - INFO [main:Environment@109] - Client environment:user.dir=/usr/local/zookeeper/apache-zookeeper-3.5.5-bin/bin
2021-02-02 19:55:17,167 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.free=52MB
2021-02-02 19:55:17,168 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.max=228MB
2021-02-02 19:55:17,169 [myid:] - INFO [main:Environment@109] - Client environment:os.memory.total=57MB
2021-02-02 19:55:17,172 [myid:] - INFO [main:ZooKeeper@868] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@759ebb3d
2021-02-02 19:55:17,184 [myid:] - INFO [main:X509Util@79] - Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation
2021-02-02 19:55:17,194 [myid:] - INFO [main:ClientCnxnSocket@237] - jute.maxbuffer value is 4194304 Bytes
2021-02-02 19:55:17,204 [myid:] - INFO [main:ClientCnxn@1653] - zookeeper.request.timeout value is 0. feature enabled=
Welcome to ZooKeeper!
2021-02-02 19:55:17,212 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1112] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2021-02-02 19:55:17,289 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@959] - Socket connection established, initiating session, client: /127.0.0.1:32794, server: localhost/127.0.0.1:2181
2021-02-02 19:55:17,315 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1394] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x100019d10d70000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0]
这里就可以输入一些命令了:
1. ls
命令
命令格式:
ls [-s][-R] /path
参数:
-s
详细信息,替代老版的ls2-R
当前目录和子目录中内容都罗列出来
例如:ls -R /
显示根目录下所有内容
[zk: localhost:2181(CONNECTED) 2] ls -s /
[zookeeper]cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
[zk: localhost:2181(CONNECTED) 3] ls -R /
/
/zookeeper
/zookeeper/config
/zookeeper/quota
2. create
命令
创建指定路径信息。
命令格式:
create /path [data]
参数:
[data]
:包含内容
例如:create /demo 创建/demo
[zk: localhost:2181(CONNECTED) 4] create /demo
Created /demo
[zk: localhost:2181(CONNECTED) 5] ls /
[demo, zookeeper]
3. get
命令
查看指定路径下内容。
命令格式:
get [-s] /path
参数:
[-s
] :详细信息
例如:get -s /demo
[zk: localhost:2181(CONNECTED) 14] ls /
[demo, demo2, zookeeper]
[zk: localhost:2181(CONNECTED) 15] get -s /demo
null
cZxid = 0x2
ctime = Wed Feb 03 02:04:57 PST 2021
mZxid = 0x2
mtime = Wed Feb 03 02:04:57 PST 2021
pZxid = 0x2
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
我们也同时看一下详细的信息里面都包括了什么内容:
null
:存放的数据
cZxid
:创建时zxid(znode每次改变时递增的事务id)
ctime
:创建时间戳
mZxid
:最近一次更新的zxid
mtime
:最近一次更新的时间戳
pZxid
:子节点的zxid
cversion
:子节点更新次数
dataversion
:节点数据更新次数
aclVersion
:节点ACL(授权信息)的更新次数
ephemeralOwner
:如果该节点为ephemeral节点(临时,生命周期与session一样), ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是ephemeral节点, ephemeralOwner值为0.
dataLength
:节点数据字节数
numChildren
:子节点数量
4. set
命令
设置节点内容。
命令格式:
set /path data
例如:
[zk: localhost:2181(CONNECTED) 17] ls /
[demo, demo2, zookeeper]
[zk: localhost:2181(CONNECTED) 18] set /demo liuweijia
[zk: localhost:2181(CONNECTED) 19] get /demo
liuweijia
5. delete
命令
删除节点。
命令格式:
delete /path
例如:
[zk: localhost:2181(CONNECTED) 20] ls /
[demo, demo2, zookeeper]
[zk: localhost:2181(CONNECTED) 21] delete /demo2
[zk: localhost:2181(CONNECTED) 22] delete /demo
[zk: localhost:2181(CONNECTED) 23] ls /
[zookeeper]