Zookeeper基本命令解析

ZooKeeper -server host:port -client-configuration properties-file cmd args

addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE

addauth scheme auth

一、整体命令格式

ZooKeeper -server host:port -client -configuration properties - file cmd args

  • 含义
    • 这是ZooKeeper客户端启动并执行命令的一种格式。
    • -server host:port:指定要连接的ZooKeeper服务器的主机名(host)和端口号(port)。例如,如果ZooKeeper服务器运行在本地的2181端口,可以写成-server localhost:2181
    • -client -configuration properties - file:用于指定客户端配置属性文件。这个文件包含了一些客户端的配置信息,如连接超时时间、会话超时时间等相关设置。
    • cmd args:表示要执行的ZooKeeper命令(cmd)以及命令所需的参数(args)。例如,ls /是一个命令(ls为查看节点命令)和参数(/为要查看的节点路径)的组合。

二、addWatch相关命令

addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE

  • 含义
    • 这个命令用于对指定的path(路径)添加观察(watch)。
    • [-m mode]mode是可选参数,有两种模式可供选择。PERSISTENT模式表示持久化观察,这种观察在被触发一次之后不会自动删除,仍然会持续观察节点的变化;PERSISTENT_RECURSIVE模式是持久化递归观察,它不仅会持续观察指定节点的变化,还会观察该节点下所有子节点的变化,默认情况下如果不指定模式,就是PERSISTENT_RECURSIVE模式。例如,如果执行addWatch -m PERSISTENT /my/node,就会对/my/node以持久化模式添加观察。

三、addauth相关命令

addauth scheme auth

  • 含义
    • 这个命令用于添加身份验证信息。
    • scheme:是身份验证的方案类型。例如,在ZooKeeper中可以使用digest方案,这是一种基于用户名和密码的摘要认证方式。
    • auth:是与所选认证方案相关的认证数据。如果是digest方案,可能是类似username:password经过摘要算法处理后的字符串。例如,如果用户名是user1,密码是pass1,经过摘要处理后得到的字符串作为auth参数,执行addauth digest <摘要后的字符串>来向ZooKeeper服务器提供身份验证信息,以便进行后续权限相关的操作。

close

config [-c] [-w] [-s]

connect host:port

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

delete [-v version] path

deleteall path [-b batch size]

delquota [-n|-b|-N|-B] path

get [-s] [-w] path

getAcl [-s] path

getAllChildrenNumber path

getEphemerals path

history

listquota path

ls [-s] [-w] [-R] path

printwatches on|off

quit

reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]

redo cmdno

removewatches path [-c|-d|-a] [-l]

set [-s] [-v version] path data

setAcl [-s] [-v version] [-R] path acl

setquota -n|-b|-N|-B val path

stat [-w] path

sync path

version

whoami

一、基础连接与操作相关命令

close

  • 含义
    • 用于关闭当前与ZooKeeper服务器的连接。当执行此命令后,客户端将断开与ZooKeeper服务器的连接,不再能够发送请求或接收响应。

config

  • [-c] [-w] [-s]
    • 含义
      • 用于获取或设置ZooKeeper服务器的配置信息。-c表示输出配置的变化信息;-w表示在配置发生变化时等待通知;-s表示输出配置信息的摘要。通过这个命令,可以查看和管理ZooKeeper服务器的一些运行参数,如tickTime、initLimit、syncLimit等。

connect host:port

  • 含义
    • 用于连接到指定的ZooKeeper服务器。其中host是ZooKeeper服务器的主机名或IP地址,port是ZooKeeper服务器的端口号(通常为2181)。如果当前客户端已经连接到一个服务器,执行此命令可以切换连接到其他服务器。

二、数据节点操作相关命令

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

    • [-s] [-e] [-c] [-t ttl]
      • 含义
        • -s表示创建顺序节点。顺序节点在ZooKeeper中会根据创建顺序在节点名后自动添加一个单调递增的序号。-e表示创建临时节点,临时节点的生命周期与创建它的客户端会话相关,当客户端会话结束时,临时节点会被自动删除。-c表示创建容器节点(在某些ZooKeeper版本中支持)。-t ttl用于设置节点的生存时间(Time - To - Live),超过这个时间节点将被自动删除(如果支持)。

    path [data] [acl]

    • 含义
      • path是要创建的节点的路径,例如/my/nodedata是要存储在节点中的数据,可以是任意字节数组(在命令行中通常以字符串形式表示)。acl是访问控制列表(Access Control List),用于定义对节点的访问权限。

delete [-v version] path

  • [-v version]
    • 含义
      • 用于删除指定路径的节点。-v version表示指定节点的版本号,如果不指定版本号,将删除最新版本的节点。版本号机制有助于在并发操作时确保数据的一致性,只有当指定的版本号与节点当前版本号匹配时,删除操作才会成功。

deleteall path [-b batch size]

  • [-b batch size]
    • 含义
      • 用于递归删除指定路径及其所有子节点。-b batch size表示批量删除的大小,在某些情况下可以提高删除操作的效率,特别是当子节点数量较多时。

get [-s] [-w] path

  • [-s] [-w]
    • 含义
      • 用于获取指定路径节点的数据内容。-s表示同时获取节点的状态信息,如节点的创建时间、修改时间、版本号等。-w表示对节点设置数据变更的观察(watch),当节点数据发生变化时,客户端将收到通知。

set [-s] [-v version] path data

  • [-s] [-v version]
    • 含义
      • 用于设置指定路径节点的数据内容。-s表示同时获取节点的状态信息更新(如更新后的版本号等)。-v version表示指定节点的版本号,只有当指定的版本号与节点当前版本号匹配时,设置操作才会成功,这有助于防止数据的并发冲突。

三、权限与配额相关命令

addauth scheme auth

  • 含义
    • 用于添加身份验证信息。scheme是身份验证的方案,如digest(基于用户名和密码的摘要认证)等,auth是与认证方案相关的认证数据。通过这个命令,客户端可以向ZooKeeper服务器提供身份验证信息,以便进行权限相关的操作。

getAcl [-s] path

  • [-s]
    • 含义
      • 用于获取指定路径节点的访问控制列表(ACL)。-s表示同时获取节点的状态信息。ACL定义了哪些用户或用户组对节点具有何种操作权限,如读、写、创建子节点等权限。

setAcl [-s] [-v version] [-R] path acl

  • [-s] [-v version] [-R]
    • 含义
      • 用于设置指定路径节点的访问控制列表(ACL)。-s表示同时获取节点的状态信息更新。-v version表示指定节点的版本号,只有当指定的版本号与节点当前版本号匹配时,设置操作才会成功。-R表示递归设置ACL,即对指定路径节点及其所有子节点设置相同的ACL。

delquota [-n|-b|-N|-B] path

  • [-n|-b|-N|-B]
    • 含义
      • 用于删除指定路径节点的配额限制。-n表示删除节点数量的配额限制;-b表示删除字节数的配额限制;-N表示删除节点数量的非递归配额限制;-B表示删除字节数的非递归配额限制。配额限制可以用来控制节点的数量或数据量,防止节点过度增长。

setquota -n|-b|-N|-B val path

  • -n|-b|-N|-B val
    • 含义
      • 用于设置指定路径节点的配额限制。-n表示设置节点数量的配额;-b表示设置字节数的配额;-N表示设置非递归的节点数量配额;-B表示设置非递归的字节数配额。val是要设置的配额值。

四、观察(watch)与监控相关命令

addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE

  • [-m mode]
    • 含义
      • 用于对指定路径的节点添加观察(watch)。mode可以是PERSISTENT(持久化观察,即使触发一次观察后也不会自动删除)或PERSISTENT_RECURSIVE(持久化递归观察,对节点及其所有子节点进行持久化观察,默认模式)。当节点发生符合观察条件的变化时(如数据变化、子节点变化等),客户端将收到通知。

printwatches on|off

  • 含义
    • 用于开启或关闭观察(watch)的打印功能。当设置为on时,客户端在收到观察通知时会打印相关信息;当设置为off时,则不会打印观察通知信息。

removewatches path [-c|-d|-a] [-l]

  • [-c|-d|-a] [-l]
    • 含义
      • 用于移除对指定路径节点的观察(watch)。-c表示移除连接级别的观察;-d表示移除数据级别的观察;-a表示移除所有类型的观察。-l表示列出当前的观察设置情况。

五、其他命令

getAllChildrenNumber path

  • 含义
    • 用于获取指定路径节点的所有子节点的数量。这个命令可以快速获取某个节点下的子节点数量情况,对于一些需要统计子节点数量的应用场景很有用。

getEphemerals path

  • 含义
    • 用于获取指定路径节点下的所有临时节点。临时节点在ZooKeeper中有特殊的用途,如表示某个客户端的会话状态等,通过这个命令可以查看特定节点下的临时节点情况。

history

  • 含义
    • 用于查看在当前ZooKeeper客户端会话中执行过的命令历史记录。这有助于回顾之前执行过的操作,方便调试和重复执行某些命令。

listquota path

  • 含义
    • 用于列出指定路径节点的配额限制情况。可以查看节点是否设置了节点数量、字节数等配额限制,以及当前的使用情况是否接近配额限制。

ls [-s] [-w] [-R] path

  • [-s] [-w] [-R]
    • 含义
      • 用于列出指定路径节点的子节点。-s表示同时获取子节点的状态信息;-w表示对子节点设置数据变更的观察(watch);-R表示递归列出子节点,即列出指定路径节点及其所有子节点的子节点情况。

reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]]] | [-add serverId=host:port1:port2;port3[,...]] [-remove serverId[,...]*]

  • [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]]] | [-add serverId=host:port1:port2;port3[,...]] [-remove serverId[,...]*]
    • 含义
      • 用于重新配置ZooKeeper集群。-s表示同时获取配置信息的状态更新。-v version表示指定配置的版本号。-file path表示从指定的文件中读取新的集群配置信息。-members serverID = host:port1:port2;port3[,...]*用于指定集群成员的详细信息,包括服务器ID、主机名、端口等。-add serverId = host:port1:port2;port3[,...]用于添加新的服务器成员到集群中。-remove serverId[,...]*用于从集群中移除服务器成员。这个命令可以动态地调整ZooKeeper集群的成员构成和配置信息。

redo cmdno

  • 含义
    • 用于重新执行之前执行过的命令。cmdno是命令历史记录中的命令编号,可以通过history命令获取。这个命令在需要重复执行某个操作或者纠正之前操作的错误时很有用。

stat [-w] path

  • [-w]
    • 含义
      • 用于获取指定路径节点的状态信息。-w表示对节点设置状态变更的观察(watch),当节点的状态(如创建时间、修改时间、版本号等)发生变化时,客户端将收到通知。

sync path

  • 含义
    • 用于强制同步指定路径节点的数据。在ZooKeeper中,数据的同步是自动进行的,但在某些特殊情况下(如网络故障后恢复),可以使用这个命令来确保节点数据在本地客户端与服务器之间的一致性。
复制代码
#### **version**
  • 含义
    • 用于获取ZooKeeper服务器的版本信息。可以了解当前使用的ZooKeeper的具体版本,这对于兼容性和功能支持方面的判断很有帮助。

whoami

  • 含义
    • 用于获取当前客户端在ZooKeeper中的身份标识。这个标识可以与身份验证和权限管理相关联,了解当前客户端在ZooKeeper中的身份状态。
相关推荐
宴之敖者、21 分钟前
Linux——\r,\n和缓冲区
linux·运维·服务器
LuDvei22 分钟前
LINUX错误提示函数
linux·运维·服务器
未来可期LJ29 分钟前
【Linux 系统】进程间的通信方式
linux·服务器
Abona30 分钟前
C语言嵌入式全栈Demo
linux·c语言·面试
心理之旅40 分钟前
高校文献检索系统
运维·服务器·容器
Lenyiin44 分钟前
Linux 基础IO
java·linux·服务器
The Chosen One9851 小时前
【Linux】深入理解Linux进程(一):PCB结构、Fork创建与状态切换详解
linux·运维·服务器
大佐不会说日语~1 小时前
使用Docker Compose 部署时网络冲突问题排查与解决
运维·网络·spring boot·docker·容器
Kira Skyler1 小时前
eBPF debugfs中的追踪点format实现原理
linux
那就学有所成吧(˵¯͒¯͒˵)2 小时前
大数据项目(一):Hadoop 云网盘管理系统开发实践
大数据·hadoop·分布式