一:zookeeper客户端命令行操作
1:开启客户端zookeeper
2:显示所有操作命令:help
3:查看当前znode中所包含的数据
4:查看当前节点详细数据
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:创建永久节点不带序号,create创建,get获取值
2:创建永久节点带序号,带序号会自动加1,不带序号会提示已经存在,-s代表序号节点
3:永久节点和短暂节点的区别,-e代表短暂节点
4:修改节点的值,set修改
四:监听器原理
1:原理介绍
2:监听节点值的案例实操
2.1:在Hadoop104主机上注册监听/sanguo节点数据变化
[zk: localhost:2181(CONNECTED) 26] get -w /sanguo
2.2:在Hadoop103主机上修改/sanguo节点的数据
[zk: localhost:2181(CONNECTED) 1] set /sanguo "xisi"
2.3:观察Hadoop104主机收到数据变化的监听
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged
path:/sanguo
在hadoop103再多次修改/sanguo的值,hadoop104上不会再收到监听。因为注册一次,只能监听一次。想再次监听,需要再次注册。
3:监听节点变化的案例实操(路径变化)
3.1:在hadoop104 主机上注册监听/sanguo 节点的子节点变化
[zk: localhost:2181(CONNECTED) 1] ls -w sanguo
shuguo, weiguo
3.2:在 hadoop103主机 /sanguo节点上创建子节点
[zk: localhost:2181(CONNECTED) 2] create /sanguo/jin "
Created /sanguo/jin
3.3:观察 hadoop104主机收到子节点变化的监听
WATCHER::
WatchedEvent state:SyncConnected type:NodeChildrenChanged
path:/ sanguo
节点的路径变化,也是注册一次,生效一次。想多次生效,就需要多次注册。
4:节点的删除和查看
4.1:删除节点
[zk: localhost:2181(CONNECTED) 4] delete /sanguo/jin
4.2:递归删除节点
[zk: localhost:2181(CONNECTED) 15] deleteall /sanguo/shuguo
4.3:查看节点状态
[zk: localhost:2181(CONNECTED) 17] stat /sanguo
cZxid = 0x100000003
ctime = Wed Aug 29 00:03:23 CST 2018
mZxid = 0x100000011
mtime = Wed Aug 29 00:21:23 CST 2018
pZxid = 0x100000014
cversion = 9
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1