zookeeper学习01

zookeeper介绍

Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生了变化,Zookeeper就负责通知已经在Zookeeper上注册的那些观察者做出相应的反应.
Zookeeper = 文件系统 + 通知机制

zookeeper工作机制
在这里插入图片描述

安装

三台虚拟机,不再赘述

客户端命令行操作

启动zookeeper

[root@hadoop102 software]# my_zookeeper.sh status
---------- zookeeper hadoop102 状态 ------------
ZooKeeper JMX enabled by default
Using config: /opt/software/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
---------- zookeeper hadoop103 状态 ------------
ZooKeeper JMX enabled by default
Using config: /opt/software/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
---------- zookeeper hadoop104 状态 ------------
ZooKeeper JMX enabled by default
Using config: /opt/software/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[root@hadoop102 zookeeper-3.5.7]# ./bin/zkCli.sh 

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

[zk: localhost:2181(CONNECTED) 1] ls /
[hbase, zookeeper]

查看当前节点详细数据

[zk: localhost:2181(CONNECTED) 2] ls -s /
[hbase, zookeeper]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x200000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2

分别创建2个普通节点

[zk: localhost:2181(CONNECTED) 3] create /sanguo "caocao"
Created /sanguo
[zk: localhost:2181(CONNECTED) 4] create /sanguo/weiguo "dianwei"
Created /sanguo/weiguo

获得节点的值

[zk: localhost:2181(CONNECTED) 5] get /sanguo
caocao
[zk: localhost:2181(CONNECTED) 6] get -s /sanguo
caocao
cZxid = 0x600000002
ctime = Mon Apr 11 15:32:05 CST 2022
mZxid = 0x600000002
mtime = Mon Apr 11 15:32:05 CST 2022
pZxid = 0x600000003
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 1
[zk: localhost:2181(CONNECTED) 7] get -s /sanguo/weiguo
dianwei
cZxid = 0x600000003
ctime = Mon Apr 11 15:32:53 CST 2022
mZxid = 0x600000003
mtime = Mon Apr 11 15:32:53 CST 2022
pZxid = 0x600000003
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0

创建临时节点

[zk: localhost:2181(CONNECTED) 8] create -e /sanguo/wuguo "zhouyu"
Created /sanguo/wuguo

(1)在当前客户端是能查看到的

[zk: localhost:2181(CONNECTED) 9] ls /sanguo
[weiguo, wuguo]

(2)退出当前客户端然后再重启客户端

quit
./bin/zkCli.sh 

(3)再次查看根目录下短暂节点已经删除

[zk: localhost:2181(CONNECTED) 0] ls /sanguo
[weiguo]

创建带序号的节点
(1)先创建一个普通的根节点

[zk: localhost:2181(CONNECTED) 1] create /sanguo/shuguo "liubei"
Created /sanguo/shuguo

(2)创建带序号的节点

[zk: localhost:2181(CONNECTED) 2] create /sanguo/shuguo "liubei"
Node already exists: /sanguo/shuguo
[zk: localhost:2181(CONNECTED) 3] create -s /sanguo/shuguo "liubei"
Created /sanguo/shuguo0000000003
[zk: localhost:2181(CONNECTED) 4] create -s /sanguo/shuguo "liubei"
Created /sanguo/shuguo0000000004
[zk: localhost:2181(CONNECTED) 5] ls /sanguo
[shuguo, shuguo0000000003, shuguo0000000004, weiguo]

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

修改节点数据值

[zk: localhost:2181(CONNECTED) 6] set /sanguo/weiguo "caopi"

节点的值变化监听
(1)在hadoop104主机上注册监听/sanguo节点数据变化

[zk: localhost:2181(CONNECTED) 0] get -w /sanguo
caocao

(2)在hadoop103主机上修改/sanguo节点的数据

[zk: localhost:2181(CONNECTED) 0] set /sanguo "diaochan"

(3)观察hadoop104主机收到数据变化的监听
在这里插入图片描述
节点的子节点变化监听(路径变化)
(1)在hadoop104主机上注册监听/sanguo节点的子节点变化

[zk: localhost:2181(CONNECTED) 1] ls -w /sanguo
[shuguo, shuguo0000000003, shuguo0000000004, weiguo]

(2)在hadoop103主机/sanguo节点上创建子节点

[zk: localhost:2181(CONNECTED) 1] create /sanguo/win "simayi"
Created /sanguo/win

(3)观察hadoop104主机收到子节点变化的监听
在这里插入图片描述
删除节点

[zk: localhost:2181(CONNECTED) 7] delete /sanguo/win

递归删除节点

[zk: localhost:2181(CONNECTED) 8] deleteall /sanguo/shuguo

查看节点状态

[zk: localhost:2181(CONNECTED) 11] stat /sanguo
cZxid = 0x600000002
ctime = Mon Apr 11 15:32:05 CST 2022
mZxid = 0x60000000e
mtime = Mon Apr 11 15:48:00 CST 2022
pZxid = 0x600000011
cversion = 9
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 3

下一篇文章介绍zookeeper的API应用

猜你喜欢

转载自blog.csdn.net/weixin_46322367/article/details/124100178