命令行使用zkCli.sh操作ZooKeeper
通过zkCli.sh连接到ZooKeeper
# 什么参数也不加直接链接到本机 zkCli.sh # 指定链接上具体的服务器节点 zkCli.sh -server node2:2181 #把所有服务器地址加上 zkCli.sh -server node1:2181,node2:2181,node3:2181 #退出zkCli.sh quit
列举节点
ls / ls / watch 或者 ls -w / #watch 或者 -w - 监听当前节点及其节点增减(create/delete node)的变化,只监听一次,监听到了就从监听列表中移除监听了。需要再次监听还得重来
创建永久节点
create /myNode nodeData
创建临时节点
create -e /myTmpNode nodeData #临时节点当客户端链接断开且设置的超时时间(默认超时时间tickTime=2000,即2s)一过就会被删除
创建带序列的节点
create -s /mySequenceNode nodeData
#zk自动添加的序列号是全局的,创建完成后要获取节点的信息得加上序列号
获取节点信息
get /myNode [watch] nodeData cZxid = 0x1a000004a8 ctime = Tue Jun 30 09:34:46 CST 2020 mZxid = 0x1a000004a8 mtime = Tue Jun 30 09:34:46 CST 2020 pZxid = 0x1a000004a8 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 8 numChildren = 0 #nodeData - 第一行是节点的值 #cZxid - 节点创建事务编号 #ctime - 节点创建时间 #mZxid - 节点最后更新事务编号 #mtime - 节点最后修改时间 #pZxid - 节点最后更新的子节点事务编号 #cversion - 节点的子节点修改次数 #dataVersion - 节点数据变化号 #aclVersion - 节点访问控制列表变化号 #ephemeralOwner - 节点是临时节点的时候的sessionid #dataLength - 节点数据长度 #numChildren - 节点的子节点个数 #带watch - 监听节点数据的变化(更新值、删除当前节点)。只监听一次,监听到了就从监听列表移除,重新监听得重新watch
设置节点值
set /myNode nodeData1
#重复设置同一个节点的值覆盖原来的值
查看节点状态信息
stat /myNode cZxid = 0x1a000004e8 ctime = Tue Jun 30 11:29:26 CST 2020 mZxid = 0x1a000004f9 mtime = Tue Jun 30 13:58:43 CST 2020 pZxid = 0x1a000004e8 cversion = 0 dataVersion = 2 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 3 numChildren = 0
删除没有子节点的节点,有子节点的节点删除用rmr
delete /myNode
递归删除节点,子节点也会被删除
rmr /myNode