zookeeper命令

输入命令 help 查看zookeeper所支持的所有命令:
[zk: localhost:2181(CONNECTED) 80] help
ZooKeeper -server host:port cmd args
    addauth scheme auth
    close 
    config [-c] [-w] [-s]
    connect host:port
    create [-s] [-e] [-c] [-t ttl] path [data] [acl]
    delete [-v version] path
    deleteall path
    delquota [-n|-b] path
    get [-s] [-w] path
    getAcl [-s] path
    history 
    listquota path
    ls [-s] [-w] [-R] path
    ls2 path [watch]
    printwatches on|off
    quit 
    reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
    redo cmdno
    removewatches path [-c|-d|-a] [-l]
    rmr path
    set [-s] [-v version] path data
    setAcl [-s] [-v version] [-R] path acl
    setquota -n|-b val path
    stat [-w] path
    sync path
1. 创建zookeeper 节点命令
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
中括号为可选项,没有则默认创建持久化节点
-s: 顺序节点
-e: 临时节点
-c: 容器节点
-t:  可以给节点添加过期时间,默认禁用,需要通过系统参数启用
(-Dzookeeper.extendedTypesEnabled=true,  znode.container.checkIntervalMs : (Java system property only) New in 3.5.1: The time interval in milliseconds for each check of
candidate container and ttl nodes. Default is "60000".)
创建节点:
create  /test-node some-data
如上,没有加任何可选参数,创建的就是持久化节点

查看节点:

get  /test-node

修改节点数据:

set /test-node some-data-changed

查看节点状态信息:

stat /test-node 

Stat
cZxid:创建znode的事务ID(Zxid的值)。
mZxid:最后修改znode的事务ID。
pZxid:最后添加或删除子节点的事务ID(子节点列表发生变化才会发生改变)。
ctime:znode创建时间。
mtime:znode最近修改时间。
dataVersion:znode的当前数据版本。
cversion:znode的子节点结果集版本(一个节点的子节点增加、删除都会影响这个版本)。
aclVersion:表示对此znode的acl版本。
ephemeralOwner:znode是临时znode时,表示znode所有者的 session ID。 如果znode不是临时znode,则该字段设置为零。
dataLength:znode数据字段的长度。
numChildren:znode的子znode的数量。
查看节点状态信息同时查看数据:
get -s /test-node 

根据状态数据中的版本号有并发修改数据实现乐观锁的功能

比如: 客户端首先获取版本信息, get -s /node-test 

/test-node 当前的数据版本是 1 , 这时客户端 用 set 命令修改数据的时候可以把版本号带上

如果在执行上面 set命令前, 有人修改了数据,zookeeper 会递增版本号, 这个时候,如果再用以前的版本号去修改,将会导致修改失败
,报如下错误

创建子节点, 这里要注意,zookeeper是以节点组织数据的,没有相对路径这么一说,所以,所有的节点一定是以 / 开头

create /test-node/test-sub-node

查看子节点信息,比如根节点下面的所有子节点, 加一个大写 R 可以查看递归子节点列表

ls  -R  /

ls  /

创建临时节点

create -e /ephemeral data 
  create 后跟一个 -e 创建临时节点 , 临时节点不能创建子节点

创建序号节点,加参数 -s

create    /seq-parent  data // 创建父目录,单纯为了分类,非必须
create -s /seq-parent/  data // 创建顺序节点。顺序节点将再seq-parent 目录下面,顺序递增
  为了容纳子节点,先创建个父目录 /seq-parent

也可以再序号节点前面带一个前缀

创建临时顺序节点

create -s -e  /ephemeral-node/前缀-
创建容器节点
create -c /container
容器节点主要用来容纳子节点,如果没有给其创建子节点,容器节点表现和持久化节点一样,如果给容器节点创建了子节点,后续又把子节点清空,容器节点也会被zookeeper删除

 

 

 
 
 
 
posted @ 2022-04-13 21:32  VNone  阅读(467)  评论(0)    收藏  举报