`
QING____
  • 浏览: 2233550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

zkCli.sh指令备忘

 
阅读更多

1) 创建节点

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

    其中"-s"表示创建一个"有序"节点,"-e"表示创建一个临时节点.默认为持久性节点

 

->create -s /test null
->create /test null

    如下为包括ACL的例子: 

 

 

->create -s /test null digest:test:Kk3Nr5X06NH+XdlGMyOrULgK/mo=:rwcda

    创建一个path为"/test"的节点,值为"null",ACL授权方式为"digest",其中授权的用户名:密码为"test:Kk3Nr5X06NH+XdlGMyOrULgK/mo=",ACL的权限列表为"r""w""c""d""a".

    "digest"授权方式表示client方位此节点数据,需要指定用户名和密码,可以参考zookeeper中DigestAuthenticationProvider.generateDigest(String ipName)方法;通过向此方法指定原始的用户名和密码即可获得"digest"之后的字符串,比如传入"test:test",将会得到"test:V28q/NynI4JI3Rk54h0r8O5kMug=",其内部原理是将"密码"部分进行MD5 + sha1操作.再zkCli.sh指令上你需要传递digest之后的字符串.

    其中ACL的授权方式有很多种,你可以在ZooDefs类中找到更多的信息.

    最后一个参数为权限列表,r表示"read",w表示"write",c表示"create",d表示"delete",a表示"admin"

 

2) 获取节点数据

    格式:get path   

 

-> get /test
-e
cZxid = 0x5b
ctime = Mon Sep 16 14:14:06 CST 2013
mZxid = 0x5b
mtime = Mon Sep 16 14:14:06 CST 2013
pZxid = 0x67
cversion = 7
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 5

    你可以从结果列表中,获得所有的节点信息.

 

 

3) 查看子节点列表

    指令: ls /path

4) 设置节点值

    格式: set path data [version]

 

-> set /test 1313131 -1

    其中值需要为字符串,版本号可以通过2)中的指令获取,如果版本号为"-1"表示更新时忽略版本校验.

 

5) 删除所有节点

    格式: rmr path

 

-> rmr /test

    将会删除"/test"以及其下的所有子节点.

 

6)  设置ACL

    格式: setAcl path acl

 

-> setAcl /test digest:test:Kk3Nr5X06NH+XdlGMyOrULgK/mo=:rwcda

    和create指令非常相似. 

 

7) 删除节点

    格式: delete path [version]

 

-> delete /test -1

    需要注意的是,如果此path下还有子节点,将导致删除失败.这是和"rmr"指令的区别.

 

8) 添加授权信息

    格式: addauth schema auth

 

-> addauth digest test:test

   只有授权之后,才能够访问那些具有ACL控制的节点数据.注意"auth"信息为原始的用户名和密码,而不是经过DigestAuthenticationProvider签名之后的.  如果使用了错误的授权信息,可能导致"Authentication is not valid : ".

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics