zookeeper之zkCli.sh的使用

本文详细介绍如何通过ZooKeeper客户端进行登录、查看、创建、修改及删除节点等操作,并解释了各命令的含义和使用场景,如ls、stat、create、set、delete等,帮助读者掌握ZooKeeper的基本使用技巧。

登录到zk客户端:

语法:./zkCli.sh -timeout 0 -r -server ip:port

timeout检查心跳  如果在一定时间没有检测到客户端的心跳包  就认为客户端失效  单位是毫秒

-r表示只读模式     zookeeper集群在一半以上失效时,集群就不再提供服务。但是有时候,我们希望及时集群故障,也会提供服务,尽管是只读,不能写。

启动命令:

./zkCli.sh -timeout 5000 -server 192.168.40.137:2181

输入h可以查看有哪些命令:

查看命令:

ls /       查看根目录下的子节点信息:

其中zookeeper是zk自带的子节点

查看节点状态信息:

stat /zookeeper

cZxid = 0x0    创建节点时的事务id

 ctime = Thu Jan 01 08:00:00 CST 1970  创建节点的时间

mZxid = 0x0  更新时的事务id

mtime = Thu Jan 01 08:00:00 CST 1970   更新时的时间

pZxid = 0x0  子节点列表最后一次修改的事务id  (可以改变该id的操作有:为当前节点增减子节点, 删除当前节点的一个或者多个子节点)(修改子节点的数据内容不计算在内)
cversion = -2  子节点的版本号
dataVersion = 0  数据版本号
aclVersion = 0  权限版本号
ephemeralOwner = 0x0  创建临时节点的事务id,如果当前节点时持久节点,该值是固定的0
dataLength = 0  当前节点存放数据的长度
numChildren = 2  当前节点所拥有子节点的个数

创建节点:

create [-s] [-e] [-c] [-t ttl] path [data] [acl]

-s表示创建的节点是顺序节点

-e表示当前创建的节点是临时节点   会话结束后,创建的临时节点会从zk服务端删除

-s顺序节点,同一个命令创建的节点,数字顺序增加。可以利用该功能,作为分布式的主键生成器。

修改节点:

 set /node_2 1234

修改节点时,如果带版本号,那么版本号必须和当前的dateVersion的版本号一致,否则修改不成功。

删除节点:

delete /node_1

如果节点含有子节点,那么节点不允许删除

如果要删除含有子节点的节点,需要使用deleteall:

创建节点时的限制条件:

 setquota -n|-b val path

-n限制子节点的个数  -b限制数据值的长度  val表示对应参数的值

删除限制条件:

delquota [-n|-b] path

### 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、付费专栏及课程。

余额充值