1.Zookeeper客户端命令行操作:
1.1.命令行语法:
- 1.语法解释如下:
命令基本语法 | 功能描述 |
---|---|
help | 显示所有操作命令 |
ls path | 使用 ls 命令来查看当前 znode 的子节点 [可监听]、-w 监听子节点变化、-s 附加次级信息 |
create | 普通创建,-s 含有序列、-e 临时(重启或者超时消失) |
get path | 获得节点的值 [可监听],-w 监听节点内容变化、-s 附加次级信息 |
set | 设置节点的具体值 |
stat | 查看节点状态 |
delete | 删除节点 |
deleteall | 递归删除节点 |
1.2.命令行操作:
a.启动客户端:
- 1.进入
opt/module/zookeeper-3.5.7/
目录,执行:bin/zkCli.sh -server hadoop103:2181
命令,打开客户端:
- 2.查看当前节点的详细数据:命令
ls /
,ls -s /
,表示的是查看当前node中所包含的内容
:
- 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 子节点数量
b.节点类型(短暂、持久,有序号,无序号):
- 持久(Persistent):客户端和服务器端断开连接后,创建的节点不删除
- 短暂(Ephemeral):客户端和服务器端断开连接后,创建的节点自己删除
b1.分别创建2个普通节点(永久 + 不带序号):
- 1.创建2个永久节点:
- 2.获取刚刚创建的节点的值:
b2.创建带序号的永久节点:
- 1.创建:先创建一个普通的根节点
/sanguo/weiguo
:
- 2.创建带序号的节点:
如果原来没有序号节点,序号从 0 开始依次递增。如果原节点下已有 2 个节点,则再排序时从 2 开始,以此类推。
b3. 创建短暂节点(短暂节点 + 不带序号 or 带序号)
- 1.创建短暂的
不带序号
的节点
- 2.创建短暂的
带序号
的节点
- 3.在当前客户端是能查看到的
- 4.退出当前客户端然后再重启客户端:
- 5.再次启动客户端,查看根目录下短暂节点已经删除
- 6.查看节点:再次查看根目录下
短暂节点已经删除
b4.修改节点数据值:
1.3.监听器原理:
- 1.客户端注册
监听它关心的目录节点
,当目录节点发生变化(数据改变、节点删除、子目录节点增加删除)时,ZooKeeper 会通知客户端;监听机制保证 ZooKeeper 保存的任何的数据的任何改变都能快速的响应到监听了该节点的应用程序
a.监听器原理介绍:
b.监听节点的值变化:
- 1.分别启动 hadoop103和 hadoop104的客户端;
- 2.先查看hadoop104上的/sanguo这个节点:
get -s /sanguo
- 3.然后通过hadoop104 客户端:注册监听/sanguo 节点数据变化,其命令是:
get -w /sanguo
- 4.再然后去hadoop103客户端上去修改/sanguo 节点的数据:
set /sanguo "xisi"
- 5.观察 hadoop104 主机收到数据变化的监听:
注意:在hadoop103再多次修改/sanguo的值,hadoop104上不会再收到监听。因为注册一次,只能监听一次。想再次监听,需要再次注册。
c.监听节点的子节点变化(路径变化)
- 1.在 hadoop104 主机上
注册监听/sanguo 节点的子节点变化
:ls -w /sanguo
- 2.在 hadoop103 主机
/sanguo
节点上创建子节点:create /sanguo/jin "simayi"
- 3.观察 hadoop104 主机收到子节点变化的监听
注意:节点的路径变化,也是注册一次,生效一次。想多次生效,就需要多次注册