zookeeper学习之路(二)单机版客户端命令使用测试

一,查看

## 查看

### help  查看所有,命令
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
        stat path [watch]         
        set path data [version]   
        ls path [watch]            
        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       

###  ls path:查看某个节点下的所有子节点信息
###  ls / :列出根节点下所有的子节点信息
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, qwe]
### get path:之后用tab一样可以看子节点信息
[zk: localhost:2181(CONNECTED) 1] get /qwe/qwe
qwe2   qwe1
###get path 获取当前节点的数据内容
[zk: localhost:2181(CONNECTED) 0] get /qwe
cZxid = 0x68
ctime = Tue Jun 11 00:15:19 PDT 2019
mZxid = 0x68
mtime = Tue Jun 11 00:15:19 PDT 2019
pZxid = 0x6a
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
[zk: localhost:2181(CONNECTED) 1] 
###stat path :获取指定节点的状态信息
[zk: localhost:2181(CONNECTED) 0] stat /qwe
cZxid = 0x68
ctime = Tue Jun 11 00:15:19 PDT 2019
mZxid = 0x68
mtime = Tue Jun 11 00:15:19 PDT 2019
pZxid = 0x6a
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
#czxid 创建该节点的事物ID
#ctime 创建该节点的时间
#mZxid 更新该节点的事物ID
#mtime 更新该节点的时间
#pZxid 操作当前节点的子节点列表的事物ID(这种操作包含增加子节点,删除子节点)
#cversion 当前节点的子节点版本号
#dataVersion 当前节点的数据版本号
#aclVersion 当前节点的acl权限版本号
#ephemeralowner 当前节点的如果是临时节点,该属性是临时节点的事物ID
#dataLength 当前节点的d的数据长度
#numchildren 当前节点的子节点个数

###ls2 path :是ls 和 stat两个命令的结合
[zk: localhost:2181(CONNECTED) 0] ls2 /qwe
[qwe2, qwe1]
cZxid = 0x68
ctime = Tue Jun 11 00:15:19 PDT 2019
mZxid = 0x68
mtime = Tue Jun 11 00:15:19 PDT 2019
pZxid = 0x6a
cversion = 2
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2

###getAcl path :查看权限
[zk: localhost:2181(CONNECTED) 3] getAcl /qwe
'world,'anyone
: cdrwa

###listquota path 查看路径节点的配额信息
###没有设置时
[zk: localhost:2181(CONNECTED) 0] listquota /qwe/qwe1
absolute path is /zookeeper/quota/qwe/qwe1/zookeeper_limits
quota for /qwe/qwe1 does not exist.
###有设置时
[zk: localhost:2181(CONNECTED) 2] listquota /qwe
absolute path is /zookeeper/quota/qwe/zookeeper_limits
Output quota for /qwe count=3,bytes=-1
Output stat for /qwe count=5,bytes=3

二,创建

## 创建
###create [-s] [-e] path data acl
###-s 表示是顺序节点
###-e 标识是临时节点  临时节点在客户端结束与服务器的会话后,自动消失
###path 节点路径
###data 节点数据
###acl 节点权限
[zk: localhost:2181(CONNECTED) 0] create -e  /qwe/qwe3 ""
Created /qwe/qwe3
[zk: localhost:2181(CONNECTED) 0] create -s  /qwe/qwe4 ""
Created /qwe/qwe40000000003

### setquota -n|-b val path:设置设置节点配额(比如限制节点数据长度,限制节点中子节点个数)
-n 是限制子节点个数 -b是限制节点数据长度
超出配额后,ZooKeeper不会报错,而是在日志信息中记录
[zk: localhost:2181(CONNECTED) 1]  setquota -n 3 /qwe
Comment: the parts are option -n val 3 path /qwe

##依然可以添加,感觉没有什么卵用
[zk: localhost:2181(CONNECTED) 2] create /qwe/qwe6 ""
Created /qwe/qwe6
[zk: localhost:2181(CONNECTED) 3] ls /qwe
[qwe40000000003, qwe6, qwe50000000004, qwe2, qwe1]

三,修改

## set path data [version] :修改当前节点的数据内容  如果指定版本,需要和当前节点的数据版本一致
### 修改前
[zk: localhost:2181(CONNECTED) 2] get /qwe/qwe1      
cZxid = 0x69
ctime = Tue Jun 11 00:15:27 PDT 2019
mZxid = 0x69
mtime = Tue Jun 11 00:15:27 PDT 2019
pZxid = 0x69
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
### 修改
[zk: localhost:2181(CONNECTED) 3] set /qwe/qwe1 "123"
cZxid = 0x69
ctime = Tue Jun 11 00:15:27 PDT 2019
mZxid = 0x85
mtime = Tue Jun 11 05:22:57 PDT 2019
pZxid = 0x69
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
### 修改后
[zk: localhost:2181(CONNECTED) 5] get /qwe/qwe1
123
cZxid = 0x69
ctime = Tue Jun 11 00:15:27 PDT 2019
mZxid = 0x85
mtime = Tue Jun 11 05:22:57 PDT 2019
pZxid = 0x69
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

## setAcl  设置权限
[zk: localhost:2181(CONNECTED) 1] setAcl /asd ip:127.0.0.1:crawd
cZxid = 0x8c
ctime = Tue Jun 11 05:28:59 PDT 2019
mZxid = 0x8c
mtime = Tue Jun 11 05:28:59 PDT 2019
pZxid = 0x8c
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
[zk: localhost:2181(CONNECTED) 2] getAcl /asd
'ip,'127.0.0.1
: cdrwa

四,删除

##删除
###delete path [version] 删除指定路径的节点 如果有子节点要先删除子节点
[zk: localhost:2181(CONNECTED) 2] delete /qweqwe 
[zk: localhost:2181(CONNECTED) 3] ls /
[asd, zookeeper, zxc, qwe]
[zk: localhost:2181(CONNECTED) 4] delete /qwe
Node not empty: /qwe
[zk: localhost:2181(CONNECTED) 5] ls /
[asd, zookeeper, zxc, qwe]

###rmr path 删除当前路径节点及其所有子节点
[zk: localhost:2181(CONNECTED) 0] rmr /qwe
[zk: localhost:2181(CONNECTED) 2] ls /
[asd, zookeeper, zxc]

###delquota [-n|-b] path 删除节点路径的配额信息
[zk: localhost:2181(CONNECTED) 2] delquota /qwe
[zk: localhost:2181(CONNECTED) 3] listquota /qwe
absolute path is /zookeeper/quota/qwe/zookeeper_limits
quota for /qwe does not exist.
  

五, 权限

Zookeeper的ACL,分为三个维度:scheme、id、permission,
通常表示为:scheme:id:permission,schema代表授权策略,id代表用户,permission代表权限。

scheme即采取的授权策略,每种授权策略对应不同的权限校验方式。下面是zk常用的几种scheme:
#world:默认方式,相当于全世界都能访问
#auth:不使用任何id,表示任何经过身份验证的用户。
#digest:即用户名:密码这种方式认证,这也是业务系统中最常用的,
使用username:password字符串生成MD5哈希,然后将其用作ACL的ID标识。
通过以明文形式发送 例如:wangsaichao:123456 来完成身份验证。
在ACL中使用时,表达式将是wangsaichao:G2RdrM8e0u0f1vNCj/TI99ebRMw=。
#ip:使用Ip地址认证

id
id是验证模式,不同的scheme,id的值也不一样。scheme为digest时,id的值为:username:BASE64(SHA1(password)),
#scheme为ip时,id的值为客户端的ip地址。
#scheme为world时,id的值为anyone。
#scheme为auth时,id为 username:password。

permission
#CREATE(r):创建子节点的权限
#DELETE(d):删除节点的权限
#READ(r):读取节点数据的权限
#WRITE(w):修改节点数据的权限
#ADMIN(a):设置子节点权限的权限

六 ,其他


###clost:关闭服务器
[zk: localhost:2181(CONNECTED) 2] close
2019-06-11 05:56:21,462 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x16b449466650027 

###history :查看客户端这次会话所执行的所有命令
[zk: localhost:2181(CONNECTED) 0] ls /
[asd, zookeeper, zxc]
[zk: localhost:2181(CONNECTED) 1] history 
0 - ls /
1 - history 

###redo cmdno :查看客户端这次会话所执行的所有命令按照查询出来的序号,执行指定历史命令
[zk: localhost:2181(CONNECTED) 2] ls /
[asd, zookeeper]
[zk: localhost:2181(CONNECTED) 3] history
0 - history
1 - ls /4
2 - ls /
3 - history
[zk: localhost:21

##quit :退出
[zk: localhost:2181(CONNECTED) 0] quit 
Quitting...
2019-06-11 06:08:35,619 [myid:] - INFO  [main:ZooKeeper@684] - Session: 
0x16b44946665002a closed
2019-06-11 06:08:35,624 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x16b44946665002a

##connect host:port :在当前连接中连接其他的ZooKeeper服务器
[zk: localhost:2181(CONNECTED) 8] connect 192.168.8.133:2181
2019-06-14 01:22:48,007 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x16b54b0017d0003 closed
2019-06-14 01:22:48,008 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=192.168.8.133:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4361bd48
2019-06-14 01:22:48,012 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x16b54b0017d0003
[zk: 192.168.8.133:2181(CONNECTING) 9] 2019-06-14 01:22:48,161 [myid:] - INFO  [main-SendThread(192.168.8.133:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server 192.168.8.133/192.168.8.133:2181. Will not attempt to authenticate using SASL (unknown error)
2019-06-14 01:22:48,228 [myid:] - INFO  [main-SendThread(192.168.8.133:2181):ClientCnxn$SendThread@876] - Socket connection established to 192.168.8.133/192.168.8.133:2181, initiating session
2019-06-14 01:22:48,233 [myid:] - INFO  [main-SendThread(192.168.8.133:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server 192.168.8.133/192.168.8.133:2181, sessionid = 0x26b54afc5d80003, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.8.133:2181(CONNECTED) 9] ls /
[cluster, controller_epoch, brokers, zookeeper, admin, isr_change_notification, consumers, latest_producer_id_block, config, jin]


##addauth scheme auth :注册会话授权信息
##sync path  :强制同步,方法会强制客户端所连接的服务器状态与leader的状态同步,这样在读取 path 的值就是最新的值了。
##printwatches on|off  :是否输出 watch 事件


四字命令 
conf	zk服务配置的详细信息
stat	客户端与zk连接的简要信息
srvr	zk服务的详细信息
cons	客户端与zk连接的详细信息
mntr	zk服务目前的性能状况
wchs	watch的简要信息
wchc	watch的详细信息,客户端 -> watch的映射,线上环境要小心使用
wchp	watch的详细信息, znode -> 客户端的映射,线上环境要小心使用

需要执行yum install -y nc在线安装nc

[root@localhost zookeeper-3.4.10]# echo conf|nc localhost 2181
-bash: nc: command not found
[root@localhost zookeeper-3.4.10]# ^C
[root@localhost zookeeper-3.4.10]# yum install -y nc
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirrors.neusoft.edu.cn
 * extras: mirrors.neusoft.edu.cn
 * updates: ftp.sjtu.edu.cn
base                                                                                                                                                                            | 3.7 kB     00:00     
base/primary_db                                                                                                                                                                 | 4.7 MB     00:02     
extras                                                                                                                                                                          | 3.4 kB     00:00     
extras/primary_db                                                                                                                                                               |  29 kB     00:00     
updates                                                                                                                                                                         | 3.4 kB     00:00     
updates/primary_db                                                                                                                                                              | 4.2 MB     00:04     
Resolving Dependencies
--> Running transaction check
---> Package nc.x86_64 0:1.84-24.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================================================================================
 Package                                     Arch                                            Version                                               Repository                                     Size
=======================================================================================================================================================================================================
Installing:
 nc                                          x86_64                                          1.84-24.el6                                           base                                           57 k

Transaction Summary
=======================================================================================================================================================================================================
Install       1 Package(s)

Total download size: 57 k
Installed size: 109 k
Downloading Packages:
nc-1.84-24.el6.x86_64.rpm                                                                                                                                                       |  57 kB     00:00     
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
 Package: centos-release-6-8.el6.centos.12.3.x86_64 (@anaconda-CentOS-201605220104.x86_64/6.8)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : nc-1.84-24.el6.x86_64                                                                                                                                                               1/1 
  Verifying  : nc-1.84-24.el6.x86_64                                                                                                                                                               1/1 

Installed:
  nc.x86_64 0:1.84-24.el6                                                                                                                                                                              

Complete!
[root@localhost zookeeper-3.4.10]# echo conf|nc localhost 2181
clientPort=2181
dataDir=/opt/module/zookeeper-3.4.10/zkData/version-2
dataLogDir=/opt/module/zookeeper-3.4.10/logs/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值