【Zookeeper 初级】03、Zookeeper 客户端命令行操作
创始人
2024-06-03 20:51:00
0

目录

一、客户端命令行操作

1.1 命令行语法

1.1.1 启动客户端

1.1.2 显示所有操作命令

1.2 znode 节点数据信息

1.2.1 查看当前 znode 中所包含的内容

1.2.2 查看当前节点详细数据

1.3 节点类型(持久/短暂/有序号/无序号)

1.3.1 分别创建 2 个普通节点(永久节点 + 不带序号)

1.3.2 获得节点的值

1.3.3 创建带序号的节点(永久节点 + 带序号)

1.3.4 创建短暂节点(短暂节点 + 不带序号 or 带序号)

1.3.5 修改节点数据值

1.4 监听器原理

1.4.1 节点的值变化监听

1.4.2 节点的子节点变化监听(路径变化)

1.5 节点删除与查看

1..5.1 删除节点

1.5.2 递归删除节点


 

一、客户端命令行操作

1.1 命令行语法

命令基本语法功能描述
help显示所有操作命令帮助
ls path使用 ls 命令来查看当前 znode 的子节点(可监听)
  • -w 监听子节点变化
  • -s 附加次级信息
create普通创建
  • -s 含有序列
  • -e 临时(重启或者超时消失)
get path        获得节点的值(可监听)
  • -w 监听节点内容变化
  • -s 附加次级信息
set设置节点的具体值
stat查看节点状态
delete删除节点
deleteall递归删除节点

1.1.1 启动客户端

[root@hadoop01 /opt/module/zookeeper-3.7.1]# zk.sh start# 默认进入本地 localhost 的 Zookeeper
[root@hadoop01 /opt/module/zookeeper-3.7.1]# bin/zkCli.sh # 进入指定主机的 Zookeeper
[root@hadoop01 /opt/module/zookeeper-3.7.1]# bin/zkCli.sh -server hadoop02:2181

1.1.2 显示所有操作命令

[zk: hadoop02:2181(CONNECTED) 0] help

1.2 znode 节点数据信息

1.2.1 查看当前 znode 中所包含的内容

[zk: hadoop02:2181(CONNECTED) 1] ls /
[zookeeper]

1.2.2 查看当前节点详细数据

[zk: hadoop02:2181(CONNECTED) 2] ls -s /
[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
  • (1) czxid 创建节点的事务 zxid

        每次修改 ZooKeeper 状态都会产生一个 ZooKeeper 事务 ID。事务 ID 是 ZooKeeper 中所有修改总的次序。每次修改都有唯一的 zxid,如果 zxid1 小于 zxid2,那么 zxid1 在 zxid2 之前发生。

  • (2) ctime znode 被创建的毫秒数(从 1970 年开始)

  • (3) mzxid znode 最后更新的事务 zxid

  • (4) mtime znode 最后修改的毫秒数(从 1970年开始)

  • (5) pZxid znode 最后更新的子节点 zxid

  • (6)cversion:znode 子节点变化号,znode 子节点修改次数

  • (7)dataversion:znode 数据变化号

  • (8)aclVersion:znode 访问控制列表的变化号

  • (9)ephemeralOwner:如果是临时节点,这个是 znode 拥有者的 session id。如果不是临时节点则是 0。

  • (10)dataLength:znode 的数据长度

  • (11)numChildren:znode 子节点数量

1.3 节点类型(持久/短暂/有序号/无序号)

1.3.1 分别创建 2 个普通节点(永久节点 + 不带序号)

[zk: localhost:2181(CONNECTED) 0] create /sanguo "diaochan"
Created /sanguo
[zk: localhost:2181(CONNECTED) 1] create /sanguo/shuguo "liubei"
Created /sanguo/shuguo
[zk: localhost:2181(CONNECTED) 3] ls /
[sanguo, zookeeper]

1.3.2 获得节点的值

[zk: localhost:2181(CONNECTED) 4] get -s /sanguo 
diaochan
cZxid = 0x400000002
ctime = Tue Mar 14 19:30:54 CST 2023
mZxid = 0x400000002
mtime = Tue Mar 14 19:30:54 CST 2023
pZxid = 0x400000003
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 1[zk: localhost:2181(CONNECTED) 5] get -s /sanguo/shuguo 
liubei
cZxid = 0x400000003
ctime = Tue Mar 14 19:31:13 CST 2023
mZxid = 0x400000003
mtime = Tue Mar 14 19:31:13 CST 2023
pZxid = 0x400000003
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

1.3.3 创建带序号的节点(永久节点 + 带序号)

# 先创建一个普通的根节点 /sanguo/weiguo
[zk: localhost:2181(CONNECTED) 6] create /sanguo/weiguo "caocao"
Created /sanguo/weiguo
[zk: localhost:2181(CONNECTED) 7] ls /sanguo 
[shuguo, weiguo]# 创建带序号的节点
[zk: localhost:2181(CONNECTED) 8] create -s /sanguo/weiguo/zhangliao "zhangliao"
Created /sanguo/weiguo/zhangliao0000000000
[zk: localhost:2181(CONNECTED) 9] create -s /sanguo/weiguo/zhangliao "zhangliao"
Created /sanguo/weiguo/zhangliao0000000001
[zk: localhost:2181(CONNECTED) 10] create -s /sanguo/weiguo/xuchu "xuchu"
Created /sanguo/weiguo/xuchu0000000002

        如果原来没有序号节点 ,序号从 0 开始依次递增。 如果原节点下已有 2 个节点,则再排
序时从 2 开始,以此类推。

1.3.4 创建短暂节点(短暂节点 + 不带序号 or 带序号)

# 创建短暂的不带序号的节点
[zk: localhost:2181(CONNECTED) 11] create -e /sanguo/wuguo "zhouyu"
Created /sanguo/wuguo
[zk: localhost:2181(CONNECTED) 12] ls /sanguo 
[shuguo, weiguo, wuguo]# 创建短暂的带序号的节点
[zk: localhost:2181(CONNECTED) 13] create -e -s /sanguo/wuguo "zhouyu"
Created /sanguo/wuguo0000000003# 在当前客户端是能查看到的
[zk: localhost:2181(CONNECTED) 14] ls /sanguo 
[shuguo, weiguo, wuguo, wuguo0000000003]# 退出当前客户端然后再重启客户端 
[zk: localhost:2181(CONNECTED) 15] quit
[root@hadoop01 /opt/module/zookeeper-3.7.1]# bin/zkCli.sh # 再次查看根目录下短暂节点已经删除
[zk: localhost:2181(CONNECTED) 1] ls /
[sanguo, zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls /sanguo 
[shuguo, weiguo]

1.3.5 修改节点数据值

[zk: localhost:2181(CONNECTED) 4] get -s /sanguo/weiguo 
caocao
cZxid = 0x400000004
ctime = Tue Mar 14 19:35:12 CST 2023
mZxid = 0x400000004
mtime = Tue Mar 14 19:35:12 CST 2023
pZxid = 0x400000007
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 3[zk: localhost:2181(CONNECTED) 5] set /sanguo/weiguo "simayi"[zk: localhost:2181(CONNECTED) 6] get -s /sanguo/weiguo 
simayi
cZxid = 0x400000004
ctime = Tue Mar 14 19:35:12 CST 2023
mZxid = 0x40000000c
mtime = Tue Mar 14 19:45:52 CST 2023
pZxid = 0x400000007
cversion = 3
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 3

1.4 监听器原理

        客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、节点删除、子目录节点增加删除)时,ZooKeeper 会通知客户端。监听机制保证 ZooKeeper 保存的任何的数据的任何改变都能快速的响应到监听了该节点的应用程序。

1.4.1 节点的值变化监听

# 在 hadoop02 主机上注册监听 /sanguo 节点数据变化
[root@hadoop02 /opt/module/zookeeper-3.7.1]# bin/zkCli.sh 
[zk: localhost:2181(CONNECTED) 2] get -w /sanguo 
diaochan# 在 hadoop01 主机上修改 /sanguo 节点的数据
[root@hadoop01 /opt/module/zookeeper-3.7.1]# bin/zkCli.sh 
[zk: localhost:2181(CONNECTED) 0] set /sanguo "xishi"# 观察 hadoop02 主机收到数据变化的监听
[zk: localhost:2181(CONNECTED) 3] 
WATCHER::WatchedEvent state:SyncConnected type:NodeDataChanged path:/sanguo

注意:在 hadoop01 再多次修改 /sanguo 的值,hadoop02 上不会再收到监听。因为注册一次,只能监听一次。想再次监听,需要再次注册。

1.4.2 节点的子节点变化监听(路径变化)

# 在 hadoop02 主机上注册监听 /sanguo 节点的子节点变化
[zk: localhost:2181(CONNECTED) 4] ls -w /sanguo 
[shuguo, weiguo]# 在 hadoop01 主机 /sanguo 节点上创建子节点
[zk: localhost:2181(CONNECTED) 2] create /sanguo/zhaoguo "zhaokuangyi"
Created /sanguo/zhaoguo# 观察 hadoop02 主机收到子节点变化的监听
[zk: localhost:2181(CONNECTED) 7] 
WATCHER::WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/sanguo

注意:节点的路径变化,也是注册一次,生效一次。想多次生效,就需要多次注册。

1.5 节点删除与查看

1..5.1 删除节点

[zk: localhost:2181(CONNECTED) 3] ls /sanguo 
[shuguo, weiguo, wuguo, zhaoguo] 
[zk: localhost:2181(CONNECTED) 4] delete /sanguo/zhaoguo 
[zk: localhost:2181(CONNECTED) 5] ls /sanguo 
[shuguo, weiguo, wuguo]

1.5.2 递归删除节点

[zk: localhost:2181(CONNECTED) 6] deleteall /sanguo 
[zk: localhost:2181(CONNECTED) 7] ls /sanguo
Node does not exist: /sanguo
[zk: localhost:2181(CONNECTED) 8] ls /
[zookeeper]

上一篇文章:【Zookeeper 初级】02、Zookeeper 集群部署_Stars.Sky的博客-CSDN博客

相关内容

热门资讯

手机安卓系统能否升级,全面解析... 亲爱的手机控们,你们有没有想过,你的手机是不是也能像我们一样,不断学习新技能,变得越来越聪明呢?没错...
手机安卓系统错误日志,诊断与优... 手机突然卡壳了,屏幕上蹦出个“系统异常,方法调用异常”的信息,后面跟着一串看不懂的字母和数字。这可怎...
安卓系统是实体系统吗,虚拟与现... 你有没有想过,安卓系统是不是一个实实在在的“实体系统”呢?听起来有点奇怪,对吧?但别急,今天咱们就来...
安卓系统软件 标记,架构、开发... 你有没有发现,手机里的那些软件图标,有时候就像是一群小精灵,各有各的标记,让人一眼就能认出它们是谁。...
飞鸽导航升级安卓系统,轻松提升... 亲爱的手机控们,你们有没有发现,最近你的手机导航软件有点不一样了呢?没错,就是那个我们每天都要依赖的...
安卓系统谁优化最好,安卓系统优... 你有没有发现,手机里的安卓系统就像是个大杂烩,每个品牌都给它加了点料,让它变得独一无二。但说到优化,...
安卓系统边锋兰溪麻将,畅玩手机... 你有没有发现,手机里那些小游戏,有时候比现实生活还精彩呢?比如,最近我迷上了一款叫做“边锋兰溪麻将”...
nvsip安卓系统闪退,“nv... 最近在使用NVSIP安卓系统的时候,你是不是也遇到了一个让人头疼的问题——那就是它时不时地闪退,简直...
平板安卓系统卸载软件,实用方法... 亲爱的平板用户们,你是否曾为那些占满你平板空间的安卓系统软件而烦恼呢?是不是觉得它们不仅占用内存,还...
安卓系统刷黑莓系统升级,黑莓手... 亲爱的手机控们,你们有没有想过,把你的安卓手机变成黑莓手机呢?是不是觉得这个想法有点酷炫?别急,今天...
安卓系统删除空白桌面,操作指南... 手机桌面上的空白页是不是让你觉得有点乱糟糟的?别急,今天就来教你几招,让你的安卓手机桌面焕然一新,告...
安卓关闭系统定位,隐私保护与电... 亲爱的手机控们,你们有没有想过,我们每天不离手的安卓手机,其实一直在默默记录着我们的行踪呢?没错,就...
安卓系统是全部开放,开放创新与... 你有没有想过,为什么安卓手机那么受欢迎呢?其实,这背后有一个大大的秘密——安卓系统的全部开放性!没错...
安卓11新系统耗电,安卓11系... 最近你的安卓手机是不是也成了“电老虎”?一不留神,电量就“嗖”地一下跑光了。别急,今天就来聊聊安卓1...
安卓系统定制怎么学,基于安卓系... 哇,你有没有想过,你的安卓手机其实可以是个独一无二的“艺术品”?没错,就是通过定制安卓系统,让你的手...
安卓操作做系统详解,操作原理、... 手机用久了是不是感觉有点卡?想给安卓手机来个大变身?那就得来个系统升级或者重装系统!别急,今天我就来...
安卓系统垃圾广告多,成因、影响... 亲爱的手机控们,你们有没有遇到过这种情况:手机里突然弹出一个广告,让你瞬间心情大好,然后又瞬间心情大...
安卓系统投影手机屏幕,多种方法... 哇塞,你有没有想过,你的安卓手机屏幕竟然可以变成一个大屏幕的“电影院”?没错,就是那种坐在沙发上,手...
安卓系统防走失app,安全出行... 你知道吗?现在这个世界上,科技可是越来越神奇了,连我们平时丢三落四的时候,都有办法用手机来帮忙找回来...
王者荣耀安卓系统抽奖,轻松获取... 你有没有发现,最近在王者荣耀里,安卓系统的玩家们都在疯狂讨论一个话题——抽奖!没错,就是那个让人又爱...