码迷,mamicode.com
首页 > 系统相关 > 详细

三、zookeeper常用shell命令

时间:2021-01-22 12:13:51      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:image   概念   tab   数据   EDA   style   内容   dmi   时间   

一、新增节点

  • 语法
#其中-s 为有序节点,-e 临时节点
create [-s] [-e] path data 

   创建持久化节点并写入数据:

# 创建hadoop节点并写入数据123456:
create /hadoop "123456"

  创建持久化有序节点,此时创建的节点名为指定节点名 + 自增序号

[zk: localhost:2181(CONNECTED) 2] create -s /a "aaa"
Created /a0000000000
[zk: localhost:2181(CONNECTED) 3] create -s /b "bbb"
Created /b0000000001
[zk: localhost:2181(CONNECTED) 4] create -s /c "ccc"
Created /c0000000002

  创建临时节点,临时节点会在会话过期后被删除

[zk: localhost:2181(CONNECTED) 5] create -e /tmp "tmp"
Created /tmp

   创建临时有序节点,临时节点会在会话过期后被删除:

[zk: localhost:2181(CONNECTED) 6] create -s -e /aa ‘aaa‘
Created /aa0000000004
[zk: localhost:2181(CONNECTED) 7] create -s -e /bb ‘bbb‘
Created /bb0000000005
[zk: localhost:2181(CONNECTED) 8] create -s -e /cc ‘ccc‘
Created /cc0000000006

二、更新节点

  更新节点的命令是 set ,可以直接进行修改,如下:

  • 语法
set path data [version]
[zk: localhost:2181(CONNECTED) 3] set /hadoop "345"
cZxid = 0x4
ctime = Thu Dec 12 14:55:53 CST 2019
mZxid = 0x5
mtime = Thu Dec 12 15:01:59 CST 2019
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

  也可以基于版本号进行更改,此时类似于乐观锁机制,当你传入的数据版本号(dataVersion) 和当前节点的数据版本号不符合时,zookeeper 会拒绝本次修改:

[zk: localhost:2181(CONNECTED) 10] set /hadoop "3456" 1
version No is not valid : /hadoop

三、删除节点

  删除节点的语法如下:

delete path [version]

  和更新节点数据一样,也可以传入版本号,当你传入的数据版本号 (dataVersion)和当前节点的数据版本号不符合时,zookeeper 不会执行删除操作。

[zk: localhost:2181(CONNECTED) 36] delete /hadoop 0
version No is not valid : /hadoop #无效的版本号
[zk: localhost:2181(CONNECTED) 37] delete /hadoop 1
[zk: localhost:2181(CONNECTED) 38]

  当某个节点有子节点时delete,不能删除该节点,要想删除某个节点及其所有后代节点,可以使用递归删除,命令为  rmr path 。

四、查看节点

  • 语法
get path
[zk: localhost:2181(CONNECTED) 1] get /hadoop
123456
cZxid = 0x4
ctime = Thu Dec 12 14:55:53 CST 2019
mZxid = 0x4
mtime = Thu Dec 12 14:55:53 CST 2019
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

  节点各个属性如下表。其中一个重要的概念是 Zxid(ZooKeeper TransactionId),ZooKeeper 节点的每一次更改都具有唯一的 Zxid,如果 Zxid1 小于 Zxid2,则Zxid1 的更改发生在 Zxid2 更改之前。

状态属性说明
cZxid 数据节点创建时的事务 ID
ctime 数据节点创建时的时间
mZxid 数据节点最后一次更新时的事务 ID
mtime 数据节点最后一次更新时的时间
pZxid 数据节点的子节点最后一次被修改时的事务 ID
cversion 子节点的更改次数
dataVersion 节点数据的更改次数
aclVersion 节点的 ACL 的更改次数
ephemeralOwner 如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为 0
dataLength 数据内容的长度
numChildren 数据节点当前的子节点个数

五、查看节点状态

  可以使用 stat 命令查看节点状态,它的返回值和 get 命令类似,但不会返回节点数据

  • 语法
stat path
[zk: localhost:2181(CONNECTED) 2] stat /hadoop
cZxid = 0x4
ctime = Thu Dec 12 14:55:53 CST 2019
mZxid = 0x4
mtime = Thu Dec 12 14:55:53 CST 2019
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

六、查看节点列表

  查看节点列表有 ls pathls2 path 两个命令,后者是前者的增强,不仅可以查看指定路径下的所有节点,还可以查看当前节点的信息

[zk: localhost:2181(CONNECTED) 0] ls /
[cluster, controller_epoch, brokers, storm, zookeeper, admin, ...]
[zk: localhost:2181(CONNECTED) 1] ls2 /
[cluster, controller_epoch, brokers, storm, zookeeper, admin, ....]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x130
cversion = 19
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 11

七、监听器get path [watch]

  使用 get path [watch] 注册的监听器能够在节点内容发生改变的时候,向客户端发出通知。需要注意的是 zookeeper 的触发器是一次性的 (One-time trigger),即触发一次后就会立即失效。

技术图片

八、监听器stat path [watch]

  使用 stat path [watch] 注册的监听器能够在节点状态发生改变的时候,向客户端发出通知

[zk: localhost:2181(CONNECTED) 7] stat /hadoop watch
[zk: localhost:2181(CONNECTED) 8] set /hadoop 112233
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop #节点值改变

九、监听器ls\ls2 path [watch]

  使用 ls path [watch] 或 ls2 path [watch] 注册的监听器能够监听该节点下所有子节点的增加和删除操作

[zk: localhost:2181(CONNECTED) 9] ls /hadoop watch
[]
[zk: localhost:2181(CONNECTED) 10] create /hadoop/yarn "aaa"
WATCHER::
WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/hadoop

三、zookeeper常用shell命令

标签:image   概念   tab   数据   EDA   style   内容   dmi   时间   

原文地址:https://www.cnblogs.com/jdy1022/p/14310479.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!