zkCli.sh 是 ZooKeeper 提供的一个命令行客户端工具,用于与 ZooKeeper 服务器进行交互。以下分别以单实例和集群为例,讲解如何使用 zkCli.sh 连接 ZooKeeper。
单实例模式
1. 启动 ZooKeeper 单实例
假设 ZooKeeper 已经安装并正确配置,可以通过以下命令启动 ZooKeeper 单实例:
bin/zkServer.sh start
2. 连接到单实例 ZooKeeper
启动 zkCli.sh 并连接到本地 ZooKeeper 实例(假设 ZooKeeper 运行在默认端口 2181):
bin/zkCli.sh -server 127.0.0.1:2181
连接成功后,你将进入 ZooKeeper 的交互式命令行界面,可以执行各种 ZooKeeper 命令。
集群模式
1. 配置 ZooKeeper 集群
在 ZooKeeper 集群模式下,需要配置多个 ZooKeeper 实例。假设有三个 ZooKeeper 实例,配置文件 zoo.cfg 中包含如下配置:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
每个服务器的 myid 文件需要设置唯一的服务器 ID,例如:
服务器 1 的 myid 文件内容为 1
服务器 2 的 myid 文件内容为 2
服务器 3 的 myid 文件内容为 3
启动每个 ZooKeeper 实例:
bin/zkServer.sh start
2. 连接到 ZooKeeper 集群
启动 zkCli.sh 并连接到 ZooKeeper 集群,可以指定多个服务器地址:
bin/zkCli.sh -server 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181
连接成功后,你将进入 ZooKeeper 的交互式命令行界面,可以执行各种 ZooKeeper 命令。
常用命令
连接到 ZooKeeper 后,可以执行以下常用命令:
创建节点:
create /my_node "my_data"
获取节点数据:
get /my_node
设置节点数据:
set /my_node "new_data"
删除节点:
delete /my_node
列出子节点:
ls /
查看节点状态:
stat /my_node
设置 ACL:
setAcl /my_node world:anyone:r
获取 ACL:
getAcl /my_node
退出客户端
使用以下命令退出 ZooKeeper 命令行客户端:
quit
通过这些步骤和命令,你可以使用 zkCli.sh 连接和管理 ZooKeeper 单实例和集群模式的服务器。