【第2章】Linux下Zookeeper客户端常用命令操作总结


笔记大纲

  • help命令
  • 新建节点
  • 查询节点
  • 删除节点
  • 四字命令

  zookeeper=类似unix文件系统+通知机制+Znode(path路径+data+stat描述节点状态)节点,zookeeper的重要功能不是增删改查,而是通知机制!

  Zookeeper维护一个类似文件系统的数据节点,所使用的数据模型风格很像文件系统的目录树结构,简单来说,有点类似windows中注册表的结构!

  ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个znode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。

  在分布式架构中,每一个节点存储的是一个个应用服务,配置信息都配置到对象的节点中!

序号 命令 注释
1 help
2 ls 使用 ls 命令来查看当前znode中所包含的内容
3 ls2 查询子节点数和状态(stat)信息
4 stat 展示状态信息
5 set 修改节点值
6 get 查询节点值
7 create 新建节点(4种)
8 delete 删除无子节点的目录
9 rmr 递归删除节点

help命令

【第2章】Linux下Zookeeper客户端常用命令操作总结_第1张图片

一、新建节点

create [-s] [-e] path data acl //注意:创建节点的同时一定要添加数据!!!

(1)create path data //创建持久化节点【普通节点】

(2)create -s path data //创建持久化序号节点

(3)create -e path data //创建临时节点,客户断开连接就会被删除

(4)create -s -e path data //创建持久化序号、临时的节点

[zk: localhost:2181(CONNECTED) 12] ls /
[zookeeper]
//不可重复创建(统一的命名服务),这里无权限,Linux用户已经设置了用户
[zk: localhost:2181(CONNECTED) 13] create /lindaxia java191028//(1)创建持久化节点
Created /lindaxia
[zk: localhost:2181(CONNECTED) 14] ls /
[lindaxia, zookeeper]
[zk: localhost:2181(CONNECTED) 15] create /lindaxia java191029  //路径是唯一的
Node already exists: /lindaxia


[zk: localhost:2181(CONNECTED) 26] ls /
[lindaxia, zookeeper]
[zk: localhost:2181(CONNECTED) 27] create -s /znode java191028  //(2)创建持久化序号节点
Created /znode0000000002
[zk: localhost:2181(CONNECTED) 28] ls /
[lindaxia, znode0000000002, zookeeper]


[zk: localhost:2181(CONNECTED) 28] ls /
[lindaxia, znode0000000002, zookeeper]
[zk: localhost:2181(CONNECTED) 29] create -e /test java191028//(3)创建临时节点
Created /test
[zk: localhost:2181(CONNECTED) 30] ls /
[lindaxia, znode0000000002, zookeeper, test]


[zk: localhost:2181(CONNECTED) 30] ls /
[lindaxia, znode0000000002, zookeeper, test]
[zk: localhost:2181(CONNECTED) 31] create -s -e /test java191028//(4)创建持久化序号、临时的节点
Created /test0000000004
[zk: localhost:2181(CONNECTED) 32] ls /
[lindaxia, znode0000000002, zookeeper, test, test0000000004]


[zk: localhost:2181(CONNECTED) 33] quit //①关闭客户端
Quitting...
2019-10-28 19:56:28,477 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1000517e59c0002 closed
2019-10-28 19:56:28,478 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@520] - EventThread shut down for session: 0x1000517e59c0002
    
[root@localhost bin]# ./zkCli.sh   //②重启客户端
    
[zk: localhost:2181(CONNECTED) 0] ls /  //查询节点信息,临时节点被删除
[lindaxia, znode0000000002, zookeeper]    

二、查询节点

get path [watch]

[zk: localhost:2181(CONNECTED) 17] get /lindaxia
java191028   //获取节点
cZxid = 0x8
ctime = Mon Oct 28 19:01:55 CST 2019
mZxid = 0x8
mtime = Mon Oct 28 19:01:55 CST 2019
pZxid = 0x8
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0

默认zookeeper的stat的结构体

[zk: localhost:2181(CONNECTED) 18] get /zookeeper  //查询zookeeper节点

cZxid = 0x0  //创建节点的事务的Zxid(zookeeper Transaction id)
ctime = Thu Jan 01 08:00:00 CST 1970 //znode被创建的毫秒数
mZxid = 0x0  //znode最后更新的Zxid
mtime = Thu Jan 01 08:00:00 CST 1970  //znode被修改的毫秒数
pZxid = 0x0  //znode最后更新的子节点的Zxid
cversion = -1  //znode子节点变化号,znode子节点修改次数
dataVersion = 0 //znode数据变化号
aclVersion = 0//znode访问控制列表的变化号
ephemeralOwner = 0x0//如果是临时节点,这个znode拥有者的session id,如果不是临时节点则是0【默认创建持久化节点】
dataLength = 0   //数据长度
numChildren = 1  //子节点数量

三、修改节点

​ set path data [version]

[zk: localhost:2181(CONNECTED) 19] get /lindaxia 
java191028
cZxid = 0x8
ctime = Mon Oct 28 19:01:55 CST 2019
mZxid = 0x8
mtime = Mon Oct 28 19:01:55 CST 2019
pZxid = 0x8
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0
    
[zk: localhost:2181(CONNECTED) 20] set /lindaxia java1910288  //修改节点信息
cZxid = 0x8
ctime = Mon Oct 28 19:01:55 CST 2019
mZxid = 0xa
mtime = Mon Oct 28 19:25:35 CST 2019
pZxid = 0x8
cversion = 0
dataVersion = 1  //znode数据变化号【版本号已经修改】
aclVersion = 0
ephemeralOwner = 0x0  
dataLength = 11
numChildren = 0
    
[zk: localhost:2181(CONNECTED) 21] get /lindaxia            
java1910288
cZxid = 0x8
ctime = Mon Oct 28 19:01:55 CST 2019
mZxid = 0xa
mtime = Mon Oct 28 19:25:35 CST 2019  //znode被修改的毫秒数【已改变】
pZxid = 0x8
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0 //默认创建持久化节点
dataLength = 11
numChildren = 0

四、删除节点

delete path [version]
rmr path [version]

[zk: localhost:2181(CONNECTED) 5] ls /
[lindaxia, znode0000000002, zookeeper]
[zk: localhost:2181(CONNECTED) 6] delete /z

znode0000000002   zookeeper
[zk: localhost:2181(CONNECTED) 6] delete /znode0000000002  //删除无子节点的目录
[zk: localhost:2181(CONNECTED) 7] ls /
[lindaxia, zookeeper]


[zk: localhost:2181(CONNECTED) 7] ls /
[lindaxia, zookeeper]
[zk: localhost:2181(CONNECTED) 8] rmr /lindaxia    //递归删除节点
[zk: localhost:2181(CONNECTED) 9] ls /
[zookeeper]

五、四字命令(zookeeper专属)

序号 命令
1 ruok:测试服务是否处于正确状态。如果确实如此,那么服务返回“imok ”,否则不做任何相应
2 stat:输出关于性能和连接的客户端的列表
3 conf:输出相关服务配置的详细信息
4 cons:列出所有连接到服务器的客户端的完全的连接 /会话的详细信息。包括“接受 / 发送”的包数量、会话id 、操作延迟、最后的操作执行等等信息
5 dump:列出未经处理的会话和临时节点
6 envi:输出关于服务环境的详细信息(区别于conf命令)
7 reqs:列出未经处理的请求
8 wchs:列出服务器watch的详细信息【观察连接点】
9 wchc:通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表
10 wchp:通过路径列出服务器 watch的详细信息。它输出一个与 session相关的路径
[root@localhost bin]# echo stat|nc 127.0.0.1 2181  //(1)输出关于性能和连接的客户端的列表
Zookeeper version: 3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
Clients:
 /0:0:0:0:0:0:0:1:57970[1](queued=0,recved=836,sent=836)
 /127.0.0.1:60364[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/34
Received: 1480
Sent: 1479
Connections: 2
Outstanding: 0
Zxid: 0x12
Mode: standalone
Node count: 4

    
[root@localhost bin]# echo conf|nc 127.0.0.1 2181  //(2)输出相关服务配置的详细信息
clientPort=2181
dataDir=/tmp/zookeeper/version-2
dataLogDir=/tmp/zookeeper/version-2
tickTime=2000  //心跳
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=0


 ☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!

☞本人博客:https://coding0110lin.blog.csdn.net/  欢迎转载,一起技术交流吧!

你可能感兴趣的:(Zookeeper)