|NO.Z.00004|——————————|BigDataEnd|——|Hadoop&Zookeeper.V04|——|Zookeeper.v04|命令操作|
一、Zookeeper的基本使用
### --- ZooKeeper命令行操作
~~~ 现在已经搭建起了一个能够正常运行的zookeeper服务了,所以接下来,
~~~ 就是来借助客户端来将zookeeper的数据节点进行操作
~~~ # 首先,进入到zookeeper的bin目录之后通过zkClient进入zookeeper客户端命令行
./zkcli.sh // 连接本地的zookeeper服务器
./zkCli.sh -server ip:port(2181) // 连接指定的服务器
~~~ # 连接成功之后,系统会输出Zookeeper的相关环境及配置信息等信息。
~~~ 输入help之后,屏幕会输出可用的Zookeeper命令,如下图所示
[zk: localhost:2181(CONNECTED) 1] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
二、创建节点
### --- 使用create命令,可以创建一个Zookeeper节点, 如
~~~ 其中,-s或-e分别指定节点特性,顺序或临时节点,若不指定,则创建持久节点
create [-s][-e] path data
### --- 创建顺序节点
~~~ 使用 create -s /zk-test 123 命令创建zk-test顺序节点
~~~ 执行完后,就在根节点下创建了一个叫做/zk-test的节点,该节点内容就是123,
~~~ 同时可以看到创建的zk-test节点后面添加了一串数字以示区别
[zk: localhost:2181(CONNECTED) 2] create -s /zk-test 123
Created /zk-test0000000000
### --- 创建临时节点
~~~ # 使用 create -e /zk-temp 123 命令创建zk-temp临时节
[zk: localhost:2181(CONNECTED) 3] create -e /zk-temp 123
Created /zk-temp
[zk: localhost:2181(CONNECTED) 4] ls /
[zk-test0000000000, zookeeper, zk-temp]
~~~ # 临时节点在客户端会话结束后,就会自动删除,下面使用quit命令退出客户端
[zk: localhost:2181(CONNECTED) 3] quit
Quitting...
~~~ # 再次使用客户端连接服务端,并使用ls / 命令查看根目录下的节点
~~~ 可以看到根目录下已经不存在zk-temp临时节点了
[zk: localhost:2181(CONNECTED) 0] ls /
[zk-test0000000000, zookeeper]
### --- 创建永久节点
~~~ 使用 create /zk-permanent 123 命令创建zk-permanent永久节点 ,
~~~ 可以看到永久节点不同于顺序节点,不会自动在后面添加一串数字
[zk: localhost:2181(CONNECTED) 1] create /zk-permanent 123
Created /zk-permanent
[zk: localhost:2181(CONNECTED) 2] ls /
[zk-permanent, zk-test0000000000, zookeeper]
~~~ # 退出之后重新进入查看永久节点
[zk: localhost:2181(CONNECTED) 0] ls /
[zk-permanent, zk-test0000000000, zookeeper]
三、读取节点
### --- 与读取相关的命令有ls 命令和get 命令
~~~ ls命令可以列出Zookeeper指定节点下的所有子节点,
~~~ 但只能查看指定节点下的第一级的所有子节点;
~~~ ls path 其中,path表示的是指定数据节点的节点路径
[zk: localhost:2181(CONNECTED) 5] ls /zookeeper
[quota]
### --- get命令可以获取Zookeeper指定节点的数据内容和属性信息。
~~~ # get path
[zk: localhost:2181(CONNECTED) 6] get /zookeeper
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
### --- 若获取根节点下面的所有子节点,使用ls / 命令即可
[zk: localhost:2181(CONNECTED) 7] ls /
[zk-permanent, zk-test0000000000, zookeeper]
~~~ # 若想获取/zk-permanent的数据内容和属性,可使用如下命令:get /zk-permanent
[zk: localhost:2181(CONNECTED) 8] get /zk-permanent
123
cZxid = 0x10000000a
ctime = Wed Sep 01 13:06:50 CST 2021
mZxid = 0x10000000a
mtime = Wed Sep 01 13:06:50 CST 2021
pZxid = 0x10000000a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
~~~ # 从上面的输出信息中,
~~~ 我们可以看到第一行是节点/zk-permanent 的数据内容,
~~~ 其他几行则是创建该节点的事务ID(cZxid)、最后一次更新该节点的事务ID(mZxid)和
~~~ 最后一次更新该节点的时间(mtime)等属性信息
四、更新节点
### --- 使用set命令,可以更新指定节点的数据内容,用法如下
set path data
### --- 其中,data就是要更新的新内容version表示数据版本,在zookeeper中,
~~~ 节点的数据是有版本概念的,这个参数用于指定本次更新操作是基于Znode的哪一个数据版本进行的,
~~~ 如将/zk-permanent节点的数据更新为456,可以使用如下命令:set /zk-permanent 456
~~~ 现在dataVersion已经变为1了,表示进行了更新
[zk: localhost:2181(CONNECTED) 10] set /zk-permanent 456
cZxid = 0x10000000a
ctime = Wed Sep 01 13:06:50 CST 2021
mZxid = 0x10000000d
mtime = Wed Sep 01 13:09:20 CST 2021
pZxid = 0x10000000a
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
五、删除节点
### --- 使用delete命令可以删除Zookeeper上的指定节点,用法如下
delete path
### --- 其中version也是表示数据版本,
~~~ 使用delete /zk-permanent 命令即可删除/zk-permanent节点
~~~ 可以看到,已经成功删除/zk-permanent节点。值得注意的是,若删除节点存在子节点,
~~~ 那么无法删除该节点,必须先删除子节点,再删除父节点
[zk: localhost:2181(CONNECTED) 11] delete /zk-permanent
[zk: localhost:2181(CONNECTED) 12] ls /
[zk-test0000000000, zookeeper]
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv009-zookeeper
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」