Zookeeper客户端命令
zkCli.sh
默认为本地服务端,连接到服务器
zkCli.sh -server ip:port
指定服务端,连接到服务集群
help命令
connect host:port
连接到其他的zookeeper服务器
create [-s] [-e] path data acl
创建节点,-s为创建有序列的节点,-e创建临时节点,acl为权限设置,具体Zookeeper-权限
get path [watch]
获取节点信息,watch=true,则监听该节点

delete path [version]
删除节点。version=-1时,不匹配版本号,直接删除。version为其他值时,删除对应版本号的节点。无法删除有子节点的节点。
删除,版本号dataVersion不对应的时候,删除失败。版本号对了,则删除成功。
无法删除有子节点的节点
rmr path
删除节点命令,此命令与delete命令不同的是delete不可删除有子节点的节点,但是rmr命令可以删除,注意路径为绝对路径
stat path[watch]
查看节点状态信息,watch为true,添加监听器
监听节点
使用客户端修改water的节点数据
监听器监听修改节点事件
注意Stat设置是否监听只能奏效一次,触发后监听就失效
set path data [version]
修改节点数据,version为待修改数据的版本号。修改后,节点版本dataVersion数据新增
ls path [watch]
列出节点path的子节点,watch为true,添加节点path的监听器,如下图
ls2 path [watch]
列出节点path的节点信息,同时包括状态信息。wattch为true时,会监听该节点的触发事件,但是触发完后,该监听事件就被清除了。
setquota -n|-b val path
设置节点的子节点最大个数或者最大长度。当子节点超过了限制,日志会打印警告信息。
-n:限制该节点最大能拥有多少个子节点
-b:限制该节点能存储的数据最大是多少字节
下图我们创建foo了节点,同时我们限制其最大子节点个数为3,但我们创建3个节点时候,日志打印出了警告信息。
警告信息
delquota [-n|-b] path
删除限制
下图,当我们再次创建节点/foo/d的时候,日志系统继续发出提示。当我们删除限制/foo,再次创建系欸但/foo/e的时候,日志系统不再提示。

listquota path
显示指定路径下已经设置的限制
history
列出最近使用的命令

redo cmdno
与history配合使用,指定执行历史某个命令

quit
退出连接
setAcl path acl
Acl表示为scheme:id:permissions,第一个字段表示采用哪一种机制scheme,第二个id表示用户user,第三个permissions表示相关权限(如只读,读写,管理等)。zookeeper提供了如下几种机制(scheme):
world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的,
默认情况下为world。
默认Acl:
设置Acl:
auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过kerberos来进行authencation, 也支持username/password形式的authentication)
设置auth的Acl,先得创建使用addauth schema auth创建user:password。注意这里digest是语法要求,和下面提到得digest不是一个概念。
设置Acl:
digest: 它对应的id为username:BASE64(SHA1(password)),它需要先通过username:password形式的authentication
setAcl /testAcl/testB digest:user:6DY5WhzOfGsWQ1XFuIyzxkpwdPo=:crwa
ip: 它对应的id为客户机的IP地址,设置的时候可以设置一个ip段,比如ip:192.168.1.0/16, 表示匹配前16个bit的IP段
setAcl /testAcl/testB ip:192.168.249.139:crwa
CREATE(c): 创建权限,控制当前节点的子节点是否可以创建的权限
DELETE(d): 删除权限,控制当前节点的子节点是否可以删除的权限,不是控制本节点的删除权限,本节点的删除权限不受影响。
READ(r): 读权限,控制当前节点读的权限
WRITE(w): 写权限,控制当前节点的权限
ADMIN(a): 管理权限,可以设置当前node的permission
addauth scheme auth
添加id:

close
关闭客户端
printwatches on|off
printwathes命令用于设置和显示监视状态,值为on或则off
sync path
sync命令用于强制同步,由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作