zookeeper学习(六)

     下面列举一些,ZooKeeper的命令操作实例:

 

连接server

  1. bin/zkCli.sh -server 10.1.39.43:4180  

列出指定node的子node

  1. [zk: 10.1.39.43:4180(CONNECTED) 9] ls /  
  2. [hello, filesync, zookeeper, xing, server, group, log]  
  3. [zk: 10.1.39.43:4180(CONNECTED) 10] ls /hello  
  4. []  

创建znode节点, 并指定关联数据

  1. create /hello world  

创建节点/hello, 并将字符串"world"关联到该节点中.

获取znode的数据和状态信息

 
  1. [zk: 10.1.39.43:4180(CONNECTED) 7] get /hello  
  2. world  
  3. cZxid = 0x10000042c  
  4. ctime = Fri May 17 17:57:33 CST 2013  
  5. mZxid = 0x10000042c  
  6. mtime = Fri May 17 17:57:33 CST 2013  
  7. pZxid = 0x10000042c  
  8. cversion = 0  
  9. dataVersion = 0  
  10. aclVersion = 0  
  11. ephemeralOwner = 0x0  
  12. dataLength = 5  
  13. numChildren = 0  

删除znode

 
  1. [zk: localhost:4180(CONNECTED) 13] delete /xing/item0000000001  
  2. [zk: localhost:4180(CONNECTED) 14] delete /xing                 
  3. Node not empty: /xing  

使用delete命令可以删除指定znode. 当该znode拥有子znode时, 必须先删除其所有子znode, 否则操作将失败. rmr命令可用于代替delete命令, rmr是一个递归删除命令, 如果发生指定节点拥有子节点时, rmr命令会首先删除子节点.

 

 使用-e参数指定创建ephemeral节点.

 
  1. [zk: localhost:4180(CONNECTED) 4] create -e /xing/ei world     
  2. Created /xing/ei  

使用-s参数指定创建sequence节点.

 
  1. [zk: localhost:4180(CONNECTED) 0] create -s /xing/item world  
  2. Created /xing/item0000000001  
  3. [zk: localhost:4180(CONNECTED) 1] create -s /xing/item world  
  4. Created /xing/item0000000002  
  5. [zk: localhost:4180(CONNECTED) 2] create -s /xing/item world  
  6. Created /xing/item0000000003  
  7. [zk: localhost:4180(CONNECTED) 3] create -s /xing/item world  
  8. Created /xing/item0000000004  

 ls命令. ls命令的第一个参数指定znode, 第二个参数如果为true, 则说明监听该znode的子节点的增减, 以及该znode本身的删除事件.

 
  1. [zk: localhost:4180(CONNECTED) 21] ls /xing true  
  2. []  
  3. [zk: localhost:4180(CONNECTED) 22] create /xing/item item000  
  4.   
  5. WATCHER::  
  6.   
  7. WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/xing  
  8. Created /xing/item  

get命令. get命令的第一个参数指定znode, 第二个参数如果为true, 则说明监听该znode的更新和删除事件.

 
  1. [zk: localhost:4180(CONNECTED) 39] get /xing true  
  2. world  
  3. cZxid = 0x100000066  
  4. ctime = Fri May 17 22:30:01 CST 2013  
  5. mZxid = 0x100000066  
  6. mtime = Fri May 17 22:30:01 CST 2013  
  7. pZxid = 0x100000066  
  8. cversion = 0  
  9. dataVersion = 0  
  10. aclVersion = 0  
  11. ephemeralOwner = 0x0  
  12. dataLength = 5  
  13. numChildren = 0  
  14. [zk: localhost:4180(CONNECTED) 40] create /xing/item item000  
  15. Created /xing/item  
  16. [zk: localhost:4180(CONNECTED) 41] rmr /xing  
  17.   
  18. WATCHER::  
  19.   
  20. WatchedEvent state:SyncConnected type:NodeDeleted path:/xing  

stat命令. stat命令用于获取znode的状态信息. 第一个参数指定znode, 如果第二个参数为true, 则监听该node的更新和删除事件.

 

ps:注意上面这个例子,在/xing下建立子节点的时候,/xing/item,watch并没有触发。因为getData对于子节点创建这种事件是不会触发的,详见:

http://wjy320.iteye.com/blog/2078655

 

猜你喜欢

转载自wjy320.iteye.com/blog/2078783