Zookeeper --------操作命令篇

Zookeeper --------操作命令篇

目錄

Zookeeper --------操作命令篇

1、基礎命令操作

2、watch機制命令操作

3、ACL權限控制操作


1、基礎命令操作

服務端常見命令:

(1)啓動服務命令:./zkServer.sh start

[root@localhost bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED    //表示啓動服務成功

(2)查看服務狀態:./zkServer.sh status

[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: standalone  //代表是單集羣狀態

(3)關閉服務:./zkServer.sh stop

 

客戶端常見命令:

(1)連接服務器: ./zkCli.sh

[root@localhost bin]# ./zkCli.sh
Connecting to localhost:2181
2020-04-18 17:40:31,026 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.11-

。。。。。。。。

WATCHER::

WatchedEvent state:SyncConnected type:None path:null   //連接服務器成功

 (2)查詢幫助命令: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]            //ls命令和stat命令的整合
    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      //創建某個節點 -s表示順序創建  -e表示創建一個臨時節點
    addauth scheme auth             //新加用戶
    quit                                     //退出當前客戶端
    getAcl path                    //獲取某個節點的權限信息
    close                
    connect host:port          //連接某個主機

(3)查看路徑下的節點:ls path

[zk: localhost:2181(CONNECTED) 1] ls /    //查看根路徑下的節點
[zookeeper, imooc]

(4)獲取某個節點的信息: get path

[zk: localhost:2181(CONNECTED) 2] get /imooc     //獲取imooc節點的值
123                                                                           //值爲123
cZxid = 0x19                                                            //創建節點的id
ctime = Fri Apr 17 20:37:16 CST 2020                   //節點的創建時間
mZxid = 0x19                                                          //修改節點的id
mtime = Fri Apr 17 20:37:16 CST 2020                  //修改節點的時間
pZxid = 0x32                                                          //子節點的id
cversion = 9                                                           //子節點的版本
dataVersion = 0                                                     //當前節點數據的版本
aclVersion = 0                                                       //權限的版本
ephemeralOwner = 0x0                                        //判斷是否是臨時節點
dataLength = 3                                                     //數據的長度
numChildren = 1                                                  //子節點的數量

2、watch機制命令操作

關於watcher機制大體的理解可以爲,當每個節點發生變化,都會觸發watcher事件,類似於mysql的觸發器。zk中 watcher是一次性的,觸發後立即銷燬。

   由help命令可以知道可以設置watch事件的有以下四種:

    stat path [watch]           
    get path [watch]

    ls path [watch]
    ls2 path [watch]

例如: stat path [watch] 設置watch事件

[zk: localhost:2181(CONNECTED) 16] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 17] stat /imooc watch
Node does not exist: /imooc
[zk: localhost:2181(CONNECTED) 18] create /imooc 123

WATCHER::

WatchedEvent state:SyncConnected type:NodeCreated path:/imooc
Created /imooc
[zk: localhost:2181(CONNECTED) 19] 

get path [watch] 設置watch事件(該方式創建時,只有該節點的變化纔會觸發watch;其路徑上的子節點的一切變化都不會觸發事件)

[zk: localhost:2181(CONNECTED) 19] get /imooc watch
123
cZxid = 0x3e
ctime = Sat Apr 18 19:26:41 CST 2020
mZxid = 0x3e
mtime = Sat Apr 18 19:26:41 CST 2020
pZxid = 0x3e
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 20] set /imooc 456

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/imooc
cZxid = 0x3e
ctime = Sat Apr 18 19:26:41 CST 2020
mZxid = 0x3f
mtime = Sat Apr 18 19:29:15 CST 2020
pZxid = 0x3e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 21] 

ls path [watch]

 

3、ACL權限控制操作

ZK的節點有5種操作權限:CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、刪、改、查、管理權限,這5種權限簡寫爲crwda(即:每個單詞的首字符縮寫)。
       注:這5種權限中,delete是指對子節點的刪除權限,其它4種權限指對自身節點的操作權限

身份的認證有4種方式:
(1)world:默認方式,相當於全世界都能訪問
(2)auth:代表已經認證通過的用戶(cli中可以通過addauth digest user:pwd 來添加當前上下文中的授權用戶)
(3)digest:即用戶名:密碼這種方式認證,這也是業務系統中最常用的
(4)ip:使用Ip地址認證

使用   [scheme:id:permissions]  來表示acl權限

 

(1)getAcl:獲取某個節點的acl權限信息

[zk: localhost:2181(CONNECTED) 36] getAcl /imooc    
'world,'anyone
: cdrwa
[zk: localhost:2181(CONNECTED) 37] 

(2)setAcl:設置某個節點的acl權限

[zk: localhost:2181(CONNECTED) 37] setAcl /imooc world:anyone:cdwa   //設置權限爲cdwa,即不可以讀該節點
cZxid = 0x3e
ctime = Sat Apr 18 19:26:41 CST 2020
mZxid = 0x45
mtime = Sat Apr 18 19:39:00 CST 2020
pZxid = 0x47
cversion = 4
dataVersion = 3
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 38] getAcl /imooc      
'world,'anyone
: cdwa
[zk: localhost:2181(CONNECTED) 39] get /imooc
Authentication is not valid : /imooc        //權限不夠,讀該節點失敗
[zk: localhost:2181(CONNECTED) 40] 

(3)acl Auth 密碼明文設置

[zk: localhost:2181(CONNECTED) 48] getAcl /imooc                    
'world,'anyone
: cdrwa
[zk: localhost:2181(CONNECTED) 49] setAcl /imooc auth:lisi:123:cdrwa
cZxid = 0x3e
ctime = Sat Apr 18 19:26:41 CST 2020
mZxid = 0x45
mtime = Sat Apr 18 19:39:00 CST 2020
pZxid = 0x47
cversion = 4
dataVersion = 3
aclVersion = 3
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 50] getAcl /imooc
'digest,'lisi:a1lTJf90grZbyldpZ2TMqcoQheU=    
: cdrwa

[zk: localhost:2181(CONNECTED) 51] 

(4)acl digest 密碼密文設置,他跟第(3)的區別就是:一個是明文輸入,一個是密文輸入

[zk: localhost:2181(CONNECTED) 52] ls /imooc
[]
[zk: localhost:2181(CONNECTED) 53] ls
[zk: localhost:2181(CONNECTED) 54] create /imooc/test 123
Created /imooc/test
[zk: localhost:2181(CONNECTED) 55] getAcl /imooc/test
'world,'anyone
: cdrwa
[zk: localhost:2181(CONNECTED) 56] setAcl /imooc/test digest:lisi:a1lTJf90grZbyldpZ2TMqcoQheU:cdraw  
cZxid = 0x50       
ctime = Sat Apr 18 20:06:13 CST 2020
mZxid = 0x50
mtime = Sat Apr 18 20:06:13 CST 2020
pZxid = 0x50
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 57] getAcl /imooc/test
'digest,'lisi:a1lTJf90grZbyldpZ2TMqcoQheU
: cdrwa

[zk: localhost:2181(CONNECTED) 58] 

(5)acl ip 控制客戶端

[zk: localhost:2181(CONNECTED) 62] getAcl /imooc/test
'world,'anyone
: cdrwa
[zk: localhost:2181(CONNECTED) 63] setAcl /imooc/test ip:192.138.137.3:cdraw
cZxid = 0x54
ctime = Sat Apr 18 20:24:36 CST 2020
mZxid = 0x54
mtime = Sat Apr 18 20:24:36 CST 2020
pZxid = 0x54
cversion = 0
dataVersion = 0
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 64] getAcl /imooc/test
'ip,'192.138.137.3
: cdrwa

[zk: localhost:2181(CONNECTED) 65] 

(6)acl super超級管理員

 

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