一、前提

  开启zookeeper服务端,用客户端连接。输入help,查看可使用命令,如下图所示:

  Zookeeper(二)--  客户端操作命令_命令

  操作无非就是增删改查等。

 二、增加

  格式:create [-s] [-e] path data acl

  path:即路径,由于zookeeper是一个树形结构,所以创建的时候就是一个Path节点,就是路径

  data:节点对应的值,保存的少量数据

  [-s]有序节点  [-e]临时节点

    注:节点临时有序节点、临时节点、持久有序节点 和 持久节点。

  1. 创建节点

  eg:create /node_1 1

  Zookeeper(二)--  客户端操作命令_java_02

  2.创建有序的持久化节点

  eg:create  -s  /node_1/node_1_1 2

  3.创建临时节点(基于会话级别)

  eg:create -e  /node_1/node_1_2 3 

三、查询

  get path [watch]

  eg:get /node_1

  Zookeeper(二)--  客户端操作命令_子节点_03

四、修改

  set path data [version]

  eg: set /node_1 abc

  Zookeeper(二)--  客户端操作命令_zookeeper_04

五、删除

  delete path [vsersion]

  eg:delete /node_1

  发现报:Node not empty:/node_1,说明node_1下面存在节点,不可以删除。

  所以,删除其中一个子节点: 

  delete /node_1/node_1_1

  Zookeeper(二)--  客户端操作命令_子节点_05

  查看node_1 下面的节点:

  ls /node_1 

六、查看

  ls 和 ls2 和 stat

  ls /node_1

  ls2 /node_1

    stat /node_1

  ls2和stat命令输出的信息更加详细,结果一样。

七、给节点设置限制

   setquota -n|-b val path

        -n的时候,val表示创建的子节点数量,path为指定的节点

    -b的时候,val表示创建节点的数据量,path为指定的节点

  1.首先查看/node_1下子节点的数量,使用 : ls /node_1,发现/node_1下面有两个子节点:

    Zookeeper(二)--  客户端操作命令_java_06

   2.这里我们设置/node_1下面允许有3个子节点

    setquota -n 3 /node_1

    Zookeeper(二)--  客户端操作命令_zookeeper_07

  3.我们继续添加一个子节点

     create /node_1/node_1_1 aaa

    Zookeeper(二)--  客户端操作命令_子节点_08

  查看/node_1下面的节点数,有3个,正确的。

  4.再继续添加一个子节点

     create /node_1/node_1_4 bbb

     Zookeeper(二)--  客户端操作命令_子节点_09

  发现也是可以创建的,虽然设置了限制,但是仍然是可以创建成功。同时,会bin/zookeeper.out 输出警告信息。这个时候我们看下日志,

  命令: tail -f zookeeper.out。

八、给节点删除限制(很少用到)

  delquota [-n|-b] path

  eg: delquota -n  /node_1 ,使用这个就删除了刚刚在node_1上加上的限制

  通过get /node_1/node_1_4,可以看到 count=-1,则说明没有限制

  Zookeeper(二)--  客户端操作命令_zookeeper_10

 九、查看事务日志

  退出客户端,进入到 cd /usr/java/zookeeper/server3/data/log/version-2,查看事务日志:

  java -cp ../../../zookeeper-3.4.9/zookeeper-3.4.9.jar:../../../zookeeper-3.4.9/lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.LogFormatter log.200000001