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服務器
##addauth scheme auth :註冊會話授權信息
##sync path  
##printwatches on|off


四字命令 
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) <[email protected]>
 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

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章