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

       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM