zkCli.sh指令备忘

ZooKeeper节点操作指南

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 : ".

 

### zkCli.sh 使用方法概述 `zkCli.sh` 是 Apache ZooKeeper 提供的一个简易客户端工具,用于与 ZooKeeper 服务端进行交互。通过该脚本,用户可以在本地或远程连接到 ZooKeeper 服务,并执行各种操作,例如查询、创建、修改和删除节点等[^1]。 在实际使用中,可以通过以下方式启动 `zkCli.sh` 客户端: - **本地连接**:直接运行脚本即可连接到本地的 ZooKeeper 服务。 ```bash ./zkCli.sh ``` - **远程连接**:指定目标服务器的 IP 地址和端口号以连接到远程 ZooKeeper 服务。 ```bash ./zkCli.sh -server <ip>:<port> ``` 在 Docker 环境中,可以使用以下命令进入容器并启动 `zkCli.sh`: ```bash docker exec -it zookeeper zkCli.sh ``` 连接成功后,系统会显示欢迎信息,并提示当前已连接到 ZooKeeper 服务[^2]。 --- ### zkCli.sh 的常用命令 #### 查询操作 - **列出节点**:使用 `ls` 命令可以查看指定路径下的子节点列表。 ```bash ls /path ``` - **获取节点数据**:使用 `get` 命令可以读取指定节点的数据内容及其元信息。 ```bash get /path ``` #### 创建操作 - **创建节点**:使用 `create` 命令可以创建一个新的节点,并为其设置初始数据。 ```bash create /path data ``` 如果需要创建持久化节点,省略 `-e` 参数;如果需要创建临时节点,添加 `-e` 参数。 #### 修改操作 - **设置节点数据**:使用 `set` 命令可以更新指定节点的数据内容。 ```bash set /path new_data ``` #### 删除操作 - **删除节点**:使用 `delete` 命令可以删除指定的节点。 ```bash delete /path ``` 此外,还可以通过 `help` 命令查看所有可用的命令列表: ```bash help ``` --- ### 示例代码 以下是一个完整的示例,展示如何使用 `zkCli.sh` 执行增删改查操作: ```bash # 连接到本地 ZooKeeper 服务 ./zkCli.sh # 创建一个节点 create /example "initial data" # 查看节点内容 get /example # 修改节点内容 set /example "updated data" # 查看修改后的节点内容 get /example # 删除节点 delete /example # 查看节点是否已被删除 ls / ``` --- ### 注意事项 在使用 `zkCli.sh` 时,可能会遇到日志警告信息,例如: ``` log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper). log4j:WARN Please initialize the log4j system properly. ``` 这些警告信息不会影响功能正常使用,但建议配置正确的日志系统以避免此类警告[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值