Zookeeper之客户端命令操作

文章目录

  • Zookeeper之客户端命令操作
    • 1.配置zookeeper的环境变量
    • 2.连接zookeeper
    • 3.数据操作
      • 3.1 zookeeper的数据存储结构
      • 3.2节点的类型
        • 1).znode有两种类型:
        • 2).znode有四种形式的目录节点(默认是persistent)如下
      • 3.3命令说明
      • 3.4常用操作
        • ls命令
        • ls2
        • get命令
        • create命令
          • 创建永久节点
          • 创建短暂节点
          • 创建短暂有序节点
        • set命令
        • delete命令
        • rmr命令
        • stat命令
        • close命令

Zookeeper之客户端命令操作

bin目录下常用的脚本解释

脚本 说明
zkCleanup 清理Zookeeper历史数据,包括食物日志文件和快照数据文件
zkCli Zookeeper的一个简易客户端
zkEnv 设置Zookeeper的环境变量
zkServer Zookeeper服务器的启动、停止、和重启脚本

1.配置zookeeper的环境变量

为了执行命令方便而不用每次都进入到zookeeper的安装目录去启动命令,我们可以将zookeeper配置到系统环境变量中。方便每次的操作

2.连接zookeeper

连接当前节点上的zookeeper服务器

zkCli.sh

Zookeeper之客户端命令操作_第1张图片

想要连接其他节点上的服务器

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

Zookeeper之客户端命令操作_第2张图片

3.数据操作

3.1 zookeeper的数据存储结构

Zookeeper之客户端命令操作_第3张图片

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命令来查看

Zookeeper之客户端命令操作_第4张图片

命令说明

序号 命令 说明
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

Zookeeper之客户端命令操作_第5张图片

创建几个节点再查看:

create /node1 node1

Zookeeper之客户端命令操作_第6张图片

ls2

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

Zookeeper之客户端命令操作_第7张图片

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

get命令

get命令查看节点的信息

get /

Zookeeper之客户端命令操作_第8张图片

节点信息说明

序号 属性 说明
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

Zookeeper之客户端命令操作_第9张图片

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

Zookeeper之客户端命令操作_第10张图片

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

Zookeeper之客户端命令操作_第11张图片

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

Zookeeper之客户端命令操作_第12张图片

注意

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

图片.png

set命令

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

Zookeeper之客户端命令操作_第13张图片

delete命令

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

Zookeeper之客户端命令操作_第14张图片

rmr命令

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

Zookeeper之客户端命令操作_第15张图片

stat命令

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

stat /node2

Zookeeper之客户端命令操作_第16张图片

close命令

关闭和服务器的连接

close

图片.png

你可能感兴趣的:(zookeeper)