ZooKeeper常用命令

    1. 在ZooKeeper ensemble中怎么查找Leader
      这里提供两种方法
      一种是在每个node上执行下面的命令看看哪个node是下面的输出
      # grep LEAD /var/log/zookeeper/zookeeper-zookeeper-server-xyz.out
      2016-02-29 22:33:47,113 - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:QuorumPeer@829] - LEADING
      2016-02-29 22:33:47,114 - INFO  [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Leader@358] - LEADING - LEADER ELECTION TOOK - 9066

      另一种方法是在每个node上使用nc命令

      # echo stat | nc localhost 2181 | grep Mode
      Mode: leader
      
      # echo stat | nc localhost 2181 | grep Mode
      Mode: follower
    2. 创建一个名叫znode_test的znode,数据是znode_test_data
      [zk: localhost:2181(CONNECTED) 0] ls /
      [zookeeper]
      [zk: localhost:2181(CONNECTED) 1] create /znode_test znode_test_data
      Created /znode_test
      [zk: localhost:2181(CONNECTED) 2] get /newznode
      znode_test_data
      cZxid = 0x200000002
      ctime = Wed Oct 14 05:19:00 EDT 2015
      mZxid = 0x200000002
      mtime = Wed Oct 14 05:19:00 EDT 2015
      pZxid = 0x200000009
      cversion = 1
      dataVersion = 0
      aclVersion = 0
      ephemeralOwner = 0x0
      dataLength = 6
      numChildren = 1
    3. 创建一个递归的名叫znode_rtest3的znode,数据为znode_rtest_data
      [zk: localhost:2181(CONNECTED) 3] ls /
      [zookeeper, znode_test]
      [zk: localhost:2181(CONNECTED) 4] create /znode_rtest1/znode_rtest2/znode_rtest3 znode_rtest_data3
      Node does not exist: /znode_rtest1/znode_rtest2/znode_rtest3
      [zk: localhost:2181(CONNECTED) 5] create /znode_rtest1 znode_rtest_data1
      Created /znode_rtest1
      [zk: localhost:2181(CONNECTED) 6] create /znode_rtest1/znode_rtest2/znode_rtest3 znode_rtest_data3
      Node does not exist: /znode_rtest1/znode_rtest2/znode_rtest3
      [zk: localhost:2181(CONNECTED) 7] create /znode_rtest1/znode_rtest2 znode_rtest_data2
      Created /znode_rtest1/znode_rtest2
      [zk: localhost:2181(CONNECTED) 8] create /znode_rtest1/znode_rtest2/znode_rtest3 znode_rtest_data3
      Created /znode_rtest1/znode_rtest2/znode_rtest3 
    4. 删除一个Znode
      delete /<znode>

       如果想要删除一个child znode

      delete /<parent_znode>/<child_znode

      递归删除znode(小心使用该命令)

      rmr /<znode-with-child>
    5. 读取Znode数据
      如果你想要读取某个znode的数据,你必须要拥有该znode的R权限(注意是不是拥有ACL的配置)
      get /<znode-name>
    6. 重写Znode数据
      你必须在拥有这个znode的W权限(注意是不是拥有ACL的配置)
      set /<znode-name> <new-data>
    7. 查看某个znode的权限
      [zk: localhost:2181(CONNECTED) 27] getAcl /yandufeng_test
      'world,'anyone
      : cdrwa
    8. World Schema
      World schema有一个ID(anyone),代表世界上的所有用户,例如,输入下面的命令来使任何用户可以访问那个znode
      setAcl /newznode world:anyone:crdwa
    9. Auth Schema
      当你使用Auth Schema的时候,你必须提供ID,否则将会报错,下面是错误的例子
      [zk: localhost:2181(CONNECTED) 36] setAcl /yandufeng_test auth:crdwa
      auth:crdwa does not have the form scheme:id:perm
      Acl is not valid : /yandufeng_test

       正确的形式应该是

      setAcl /newznode auth:username:password:crdwa
原文地址:https://www.cnblogs.com/yandufeng/p/6365447.html