五:ZooKeeper的集群命令客户端的链接和命令操作的使用
一:zookeeper客户端链接
【1】进入zookeeper的安装目录的bin目录下
# cd /opt/zookeeper/bin
【2】敲击链接客户端的命令(zkCli.sh)
# ./zkCli.sh -timeout 0 -r -server ip:port
timeout==>单位:毫秒 表示:当前会话的超时时间,规定时间没有收到心跳包,则认为该链接失效
-r==>只读模式,在集群和半数以上机器失去联系后,则不能进行写服务,但可以提供读服务。
-server==>需要指出zk集群服务器的ip地址和对外提供服务的端口号
二:zookeeper客户端链接上后可以操作zk服务器的命令
【1】在连接上后敲命令h就可以弹出相应命令
#h
●ls path [watch]
--->列出某个节点下所有子节点的列表
--->path 参数代表ZNode节点的完整路径
--->[watch]
●stat path [watch]
--->列出某个节点的状态信息(属性信息)
--->path参数代表ZNode节点的完整路径
--->[watch]
czxid==>该节点的事务id
ctime==>该节点的创建时间
mzxid==>最后一次更新节点时的事务id
mtime==>最后一次更新节点时的修改时间
pZxid==>该节点的子节点列表最后一次修改时的事务id(添加子节点,删除一个或多个子节点)修改子节点数据内容的行为不包括
cversion==>该节点的子节点的版本号
dataVersion==>该节点的数据版本号
aclVersion==>acl权限版本号
ephemmeralOwner==>创建该临时节点的事务id,如果该节点是持久节点,则值为0
dataLength==>该节点中存储数据的长度
numChildren==>该节点的子节点个数
●get path [watch]
--->列出该节点中存储的数据内容
--->path 该节点的全路径
--->[watch]
该命令功能是:列出数据内容和该节点的状态信息(同stat命令的内容)
●ls2 path [watch]
--->列出该节点的子节点列表和该节点的状态信息
--->path 该节点的全路径
--->[watch]
●create [-s] [-e] path data acl
--->创建一个节点
--->[-s] 当前创建的节点为顺序节点(节点名字后加上一串数据标识,每增加一个并且会自增1)
--->[-e] 当前创建的节点为临时节点
--->path 创建出的节点的全路径
--->data 创建出的该节点所存储的数据内容
--->acl 告诉系统访问该节点所具有的权限
acl例子 [ip] ip:10.151.30.75:crwda
[degist] digest:shangxiaofei:lJuWll4TiVl+3WoyURNNJNk6D1Q=:crwda
所有客户端的授权命令,格式相同
/**
*权限模式(scheme): ip,digest
*授权对象(ID):
* ip权限模式:具体的ip地址
* digest权限模式:username:Base64(SHA-1(username:password))
*
*权限(permission):CREATE(C),DELETE(D),READ(R),WRITE(W),ADMIN(A)
* 注:单个权限,完全权限,复合权限
*
*权限组合:scheme+ID+permission
*/
●set path data [version]
--->修改节点中的存储数据
--->path 要修改的节点的完整路径
--->data 要修改的节点中存储的数据值
--->[version] 要修改的节点的数据版本号的值,该值与上一次查询出来的dataversion值一致(类似乐观锁)
●delete path [version]
--->删除一个节点(只能删除没有子节点的节点)
--->path 要删除的节点的全路径
--->[version] 要删除的节点的版本号(类似乐观锁)
●rmr path
--->删除一个节点(这个节点可以存在子节点)先一层一层删除子节点,再删除当前的节点
--->path 要删除的节点的全路径
●setquota -n | -b val path
--->设置已经存在的节点的配额(主要限制节点的子节点个数和节点中存储数据的长度)
--->-n 限制该节点的子节点的个数(若现有节点的子节点个数已经超过设置配额的值,会在制定日志文件记录一个警告信息,并不会报错)
--->-b 限制该节点存储数据的长度
--->val 限制属性对应的参数值
--->path 需要限制的节点的路径
*报错的警告信息会存储在zookeeper安装目录的bin目录下的(/opt/zookeeper/bin)zookeeper.out文件中
●listquota path
--->查看指定节点的配额(节点存储数据的长度和节点最多拥有子节点的个数)
--->path 指定节点的全路径
Output quota for /node_1 count=2 bytes=-1
===>当前节点的配额信息 count=2代表限制子节点最大个数为2, bytes=-1 代表当前节点存储的数据长度没有限制。 (-1 代表没有存储数据长度限制,其他值代表节点存储数据的长度限制)
Output stat for /node_1 count=4 ,bytes=12
===>当前节点的状态信息count=4代表当前节点加上当前节点的子节点个数的和是4,bytes=12代表当前节点中存储数据的长度加上当前节点的所有子节点中存储数据的长度的总和
●delquota [-n | -b] path
--->删除指定节点的配额(拥有子节点的最大个数和当前节点存储数据的最大长度)
--->path 指定节点的全路径
--->-n 代表删除子节点个数限制的配额
--->-b 代表删除当前节点中存储数据最大长度的限制配额
Output quota for /node_1 count=-1 bytes=-1
===>删除指定节点的配额。count=-1代表当前节点所能拥有的子节点个数无限制 bytes=-1代表当前节点中存储数据长度无限制
Output stat for /node_1 count=4 ,bytes=12
===>当前节点的状态信息count=4代表当前节点加上当前节点的子节点个数的和是4,bytes=12代表当前节点中存储数据的长度加上当前节点的所有子节点中存储数据的长度的总和
●connect host:port
--->可以在当前会话中可以链接到zk集群中其他的服务器
--->host 代表要链接的zk集群中服务器的ip地址
--->port 代表要链接的zk集群中服务器的端口号
●close
--->如果当前会话中又链接到zk集群中其他的服务器,我们想退出这个链接,可以用close
●history
--->查看之前使用指令的历史信息
●redo
--->通过history查看到之前使用指令的历史,可以快速重复执行之前使用的指令
--->redo +历史的命令行数
●quit
--->退出当前客户端与zk集群中服务器的会话
●addauth scheme auth
--->给所在的客户端注册权限
--->scheme 注册的权限(digest)
--->auth 用户名:密码
四:zookeeper的四字命令
【1】第一种方式使用四字命令
--->telnet 启动zk机器节点ip 对外提供服务的端口号(telnet 192.168.1.105 2181)
--->stat
【2】常用的四字命令
#echo stat | nc ip 端口号
===>zookeeper服务器状态信息,节点数,角色等。当前服务器的链接信息也打印出来
#echo conf | nc ip 端口号
===>zookeeper服务器的基本配置信息
#echo cons | nc ip 端口号
===>表示当前服务器上所有客户端的链接的详细信息,包括每个客户端的ip 地址,会话id,最后一次交互的操作类型
#echo crst | nc ip 端口号
===>重置所有客户端链接统计信息
#echo dump | nc ip 端口号
===>输出集群所有的会话信息,包活会话信息id,以及每个会话创建的临时节点的信息
#echo envi | nc ip 端口号
===>输出当前服务器所运行的环境信息
#echo ruok | nc ip 端口号
===>用于判断当前服务器是否正常运行的命令。
#echo srvr | nc ip 端口号
===>与stat相似,但不会数据客户端链接信息
#echo srst | nc ip 端口号
===>重置所有服务器的统计信息
#echo wchs | nc ip 端口号
===>当前服务器上watcher管理的概要信息
#echo wchc | nc ip 端口号
===>当前服务器上watcher的详细信息,以会话为单位进行分组显示
#echo wchp | nc ip 端口号
===>输出当前服务器上管理的watcher信息,以节点路径为单位进行分组显示
#echo mntr | nc ip 端口号
===>输出比stat命令更为详细的服务器统计信息。请求处理延迟情况,服务器内存数据库的大小,和集群数据同步情况。每一行都是key-value的信息