0 数据存储特点
znode类似于Linux的目录结构(TREE) , 维护了节点的层级关系 ,真正的数据存储是以key:value的形式存储的!
在所有的ZK节点上存储的数据是同步一致的!
zookeeper中对数据的存储采用key-value的形式
然后,它的key有特别的格式——路径的形式!( /service/dn1 doit01 /service/dn2 doit02 )
之所以采取这种形式,是因为zookeeper中的数据节点(znode)之间可以存在父子关系;
zookeeper的数据节点分为以下类型:
永久的znode:客户一旦创建这个znode,它就会被zookeeper一直保存,除非人为删除;
短暂的znode:客户创建完这个znode后,如果客户断开与zookeeper的连接,则该数据马上会被zookeeper删除;
带序号的znode:客户创建一个key,zookeeper会为客户的key自动拼接一个递增的序号!
(客户创建的是/aaa/x ,那么zookeeper真实生成的key为: /aaa/x0000000000001
如果客户继续创建 /aaa/y,那么zookeeper真实生成的key为:/aaa/y000000000002)
另外: 永久的和短暂的,都可以跟“带序号的”特性进行组合!组合下来之后共有4种:
永久不带序号
永久且带序号的
短暂不带序号
短暂且带序号的
1 登录客户端
- bin/zkCli.sh
- bin/zkCli.sh -server linux01:2181
- bin/zkCli.sh -server linux01:2181,linux02:2181,linux03:2181
help
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version] 更新数据
ls path [watch] 查看指定目录下的节点 ls / ls /servers
delquota [-n|-b] path
ls2 path [watch] 查看指定目录下的节点 详细
setAcl path acl
setquota -n|-b val path
history 查看执行历史命令
redo cmdno
printwatches on|off
delete path [version] 删除空节点
sync path
listquota path
rmr path 删除节点(递归)
get path [watch] 获取节点的数据
create [-s] [-e] path data acl 创建节点
addauth scheme auth
quit 退出 客户端
getAcl path
close 退出客户端
connect host:port
2 基础命令
2.1 ls和ls2
2.2 创建节点 create
注意在zk中节点分成两种 临时和永久节点 默认的节点是永久节点临时节点(生命周期是客户端的连接) -e(临时) -s(有序)
无序临时节点 create -e /node value
有序临时节点 create -s -e /node value
永久节点(默认的)
永久无序节点 create /node value
永久有序节点 create -s /node value
2.3 获取节点的值 get
[zk: localhost:2181(CONNECTED) 13] get /aa0000000004
AA
cZxid = 0x200000019
ctime = Wed Jul 15 15:15:41 CST 2020
mZxid = 0x200000019
mtime = Wed Jul 15 15:15:41 CST 2020
pZxid = 0x200000019
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0