文章目录
Zookeeper之客户端命令操作
bin目录下常用的脚本解释
| 脚本 | 说明 |
|---|---|
| zkCleanup | 清理Zookeeper历史数据,包括食物日志文件和快照数据文件 |
| zkCli | Zookeeper的一个简易客户端 |
| zkEnv | 设置Zookeeper的环境变量 |
| zkServer | Zookeeper服务器的启动、停止、和重启脚本 |
1.配置zookeeper的环境变量
为了执行命令方便而不用每次都进入到zookeeper的安装目录去启动命令,我们可以将zookeeper配置到系统环境变量中。方便每次的操作
2.连接zookeeper
连接当前节点上的zookeeper服务器
zkCli.sh

想要连接其他节点上的服务器
zkCli.sh -timeout 5000 -server hadoop3:2181
| 参数 | 说明 |
|---|---|
| -timeout | 连接超时时长 |
| -server | 需要连接的服务器地址默认端口是2181,可以省略 |

3.数据操作
3.1 zookeeper的数据存储结构

3.2节点的类型
1).znode有两种类型:
短暂性(ephemeral)(断开连接自己删除)
持久性(persistent)(断开连接不删除)
2).znode有四种形式的目录节点(默认是persistent)如下
| 序号 | 节点类型 | 描述 |
|---|---|---|
| 1 | PERSISTENT | 持久节点 |
| 2 | PERSISTENT_SEQUENTIAL | 持久有序节点 |
| 3 | EPHEMERAL | 短暂节点 |
| 4 | EPHEMERAL_SEQUENTIAL | 短暂有序节点 |
创建znode时设置顺序标识,znode名称后会附加一个值,顺序号是一个单调递增的计数器,有父节点维护
在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序
3.3命令说明
zookeeper中的常用命令不是很多,我们可以通过help命令来查看

命令说明
| 序号 | 命令 | 说明 |
|---|---|---|
| 1 | connect | 在连接服务器的情况连接到其他节点上去 |
| 2 | close | 关闭和服务器的连接 |
| 3 | ls | 用于获取某个节点下的节点信息 |
| 4 | ls2 | ls2命令是ls命令的增强版,比ls命令多输出本节点信息 |
| 5 | create | 用于创建节点,其中-s为顺序节点,-e临时节点 |
| 6 | delete | 只能删除没有子节点的节点 |
| 7 | rmr | 可以删除有子节点的节点 |
| 8 | get | 用户获取节点信息 |
| 9 | stat | 查看节点的状态 |
| 10 | set | 设置节点的数据 |
| 11 | listquota | listquota命令用于显示配额,zookeeper的quota并没有实际的限制作用,超出了也只是打印WARN级别日志 |
| 12 | setquota | setquota命令用于设置节点个数以及数据长度的配额 |
| 13 | delquota | 用于删除配额,-n为子节点个数,-b为节点数据长度,如:delquota –n 2 |
| 14 | history | 用于列出最近的命令历史,可以和redo配合使用 |
| 15 | redo | 命令用于再次执行某个命令 |
| 16 | addauth | 用于节点认证,使用方式:如addauth digest username:password |
| 17 | setAcl | setAcl命令用于设置节点Acl Acl由三部分构成: 1为scheme,2为user,3为permission,一般情况下表示为scheme: id :permissions |
| 18 | getAcl | 获取节点的Acl,如getAcl /node1 |
| 19 | sync | 用于强制同步,由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作 |
| 20 | printwatchers | 用于设置和显示监视状态,值为on或则off |
| 21 | quit | 退出客户端 |
3.4常用操作
ls命令
ls命令是用来查看某个节点下的子节点信息,zookeeper的根节点是’/’,在初始的时候’/'下是没有任何子节点的
ls

创建几个节点再查看:
create /node1 node1

ls2
ls2命令是ls命令的增强版,比ls命令多输出本节点信息

节点的信息描述在下面的get命令中描述
get命令
get命令查看节点的信息
get /

节点信息说明
| 序号 | 属性 | 说明 |
|---|---|---|
| 1 | cZxid | Znode创建的事务id |
| 2 | ctime | 节点创建时间 |
| 3 | mZxid | Znode被修改的事务id,即每次对znode的修改都会更新mZxid |
| 4 | mtime | 节点最近一次更新的时间 |
| 5 | pZxid | 是与该节点的子节点(或该节点)的最近一次 创建 / 删除 的时间戳对应 |
| 6 | cversion | 子节点数据更新次数 |
| 7 | dataVersion | 本节点数据更新次数 |
| 8 | aclVersion | 节点ACL(授权信息)的更新次数 |
| 9 | ephemeralOwner | 如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0 |
| 10 | dataLength | 节点数据长度 |
| 11 | numChildren | 子节点个数 |
zxid特别说明
对于zk来说,每次的变化都会产生一个唯一的事务id,zxid(ZooKeeper Transaction Id)。通过zxid,可以确定更新操作的先后顺序。例如,如果zxid1小于zxid2,说明zxid1操作先于zxid2发生。需要指出的是,zxid对于整个zk都是唯一的,即使操作的是不同的znode。
create命令
create命令用户创建ZNode节点。
| 参数 | 说明 |
|---|---|
| -s | 有序 |
| -e | 短暂 |
| path | 节点路径及名称 |
| data | 节点保存的数据 |
| acl | 节点的权限 |
创建永久节点
create /node1/node01 node01

永久节点即使我们断开连接后再次连接后也不会消失

创建短暂节点
create -e /node1/node02 node02

创建短暂有序节点
create -s -e /node1/node03 node03

注意
- 短暂节点不能创建子节点
- 创建短暂节点的客户端断开连接后数据会被自动删除

set命令
set命令用来修改节点存储的信息

delete命令
delete命令用来删除节点,但是不能删除非空的节点

rmr命令
rmr命令也是用来删除节点的,而且rmr命令可以删除非空的节点。

stat命令
stat命令查看节点的状态信息
stat /node2

close命令
关闭和服务器的连接
close

本文详细介绍Zookeeper客户端命令操作,包括配置环境变量、连接服务器、数据存储结构、节点类型及常用命令,如ls、get、create等,适用于Zookeeper初学者及开发者。
1547

被折叠的 条评论
为什么被折叠?



