|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

 

 

posted on   yanqi_vip  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示