zkCli操作zookeeper的命令

1.啓動zookeeper服務端,執行 zkServer.sh

2.啓動zookeeper客戶端,執行 zkCli.sh,來操作zookeeper

3.使用help查看所以命令操作

4.查看根節點下創建的目錄

5.創建節點並賦值

6.給節點重新賦值

7.獲取節點的值

8.刪除節點:

delete  path(不能刪除有子節點的節點,path表示節點的全路徑)

rmr path(通過遞歸的方式,可以刪除帶有子節點的節點)

9.查詢節點狀態

節點屬性的含義:

1)czxid- 引起這個znode創建的zxid,創建節點的事務的zxid

2)ctime - znode被創建的毫秒數(從1970年開始)

3)mzxid - znode最後更新的zxid

4)mtime - znode最後修改的毫秒數(從1970年開始)

5)pZxid-znode最後更新的子節點zxid

6)cversion - znode子節點變化號,znode子節點修改次數

7)dataversion - znode數據變化號,每次對節點數據做修改都會+1

8)aclVersion - znode訪問控制列表的變化號

9)ephemeralOwner- 如果是臨時節點,這個是znode擁有者的session id。如果不是臨時節點則是0

10)dataLength- znode的數據長度

11)numChildren - znode子節點數量

 

10.connect、close命令用來操作客戶端與遠程zookeeper的斷開與手動連接

11.listquota,顯示配額。

如 listquota /zookeeper

absolute path is/zookeeper/quota/zookeeper/zookeeper_limits

Output quota for /zookeepercount=2,bytes=-1

解釋:

/zookeeper節點個數限額爲2,長度無限額。

 

printwatches命令

設置和顯示監視狀態,on或者off。

如printwatches on

setAcl命令

設置節點Acl。

此處重點說一下acl,acl由大部分組成:1爲scheme,2爲user,3爲permission,一般情況下表示爲scheme:id:permissions。

其中scheme和id是相關的,下面將scheme和id一起說明。

 

scheme和id

world: 它下面只有一個id, 叫anyone, world:anyone代表任何人,zookeeper中對所有人有權限的結點就是屬於world:anyone的

auth: 它不需要id, 只要是通過authentication的user都有權限(zookeeper支持通過kerberos來進行authencation, 也支持username/password形式的authentication)

digest: 它對應的id爲username:BASE64(SHA1(password)),它需要先通過username:password形式的authentication

ip: 它對應的id爲客戶機的IP地址,設置的時候可以設置一個ip段,比如ip:192.168.1.0/16, 表示匹配前16個bit的IP段

super: 在這種scheme情況下,對應的id擁有超級權限,可以做任何事情(cdrwa)

permissions

CREATE(c): 創建權限,可以在在當前node下創建child node

DELETE(d): 刪除權限,可以刪除當前的node

READ(r): 讀權限,可以獲取當前node的數據,可以list當前node所有的child nodes

WRITE(w): 寫權限,可以向當前node寫數據

ADMIN(a): 管理權限,可以設置當前node的permission

綜上,一個簡單使用setAcl命令,則可以爲:

setAcl /zookeeper/node1 world:anyone:cdrw

 getAcl命令

獲取節點Acl。

如getAcl /zookeeper/node1

'world,'anyone

: cdrwa

注:可參見setAcl命令。

sync命令

強制同步。

如sync /zookeeper

由於請求在半數以上的zk server上生效就表示此請求生效,那麼就會有一些zk server上的數據是舊的。sync命令就是強制同步所有的更新操作。

redo命令

再次執行某命令。

如 redo 10

其中10爲命令ID,需與 history 配合使用。

addauth命令

節點認證。

如addauth digest username:password,可參見setAcl命令digest處。

使用方法:

一、通過setAcl設置用戶名和密碼

setAcl pathdigest:username:base64(sha1(password)):crwda

二、認證

addauth digest username:password

setquota命令

設置子節點個數和數據長度配額。

如setquota –n 4 /zookeeper/node 設置/zookeeper/node子節點個數最大爲4

setquota –b 100 /zookeeper/node 設置/zookeeper/node節點長度最大爲100

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