首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

zkCli.sh授命备忘

2013-10-01 
zkCli.sh指令备忘1) 创建节点? ? 格式:create [-s] [-e] path data acl? ? 其中-s表示创建一个有序节

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-ecZxid = 0x5bctime = Mon Sep 16 14:14:06 CST 2013mZxid = 0x5bmtime = Mon Sep 16 14:14:06 CST 2013pZxid = 0x67cversion = 7dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 2numChildren = 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 :?".

?

热点排行