1. 程式人生 > >zookeeper shell客戶端命令簡介

zookeeper shell客戶端命令簡介

  • 1.客戶端連線
[root@hadoop01 soft]# ./zookeeper-3.4.5/bin/zkCli.sh
  • 2.檢視所有命令
    ZooKeeper -server host:port cmd args
    connect host:port
    get path [watch]
    ls path [watch]
    set path data [version]
    rmr path
    delquota [-n|-b] path
    quit 
    printwatches on|off
    create [-s] [-e] path data acl
    stat path [watch]
    close
ls2 path [watch] history listquota path setAcl path acl getAcl path sync path redo cmdno addauth scheme auth delete path [version] setquota -n|-b val path
  • 3.命令簡介
#ls 檢視
[zk: hadoop02:2181(CONNECTED) 8] ls /
[zookeeper]

#create 建立節點並存儲資料
[zk: hadoop02:2181(CONNECTED) 9] create /app1 "this is app1"         
Created /app1
[zk: hadoop02:2181(CONNECTED) 10] ls /
[app1, zookeeper]

#獲取內容
[zk: hadoop02:2181(CONNECTED) 14] get /app1/server01 "192.168.80.151" cZxid = 0x100000005 ctime = Tue Nov 15 17:22:49 EST 2016 mZxid = 0x100000005 mtime = Tue Nov 15 17:22:49 EST 2016 pZxid = 0x100000005 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 16 numChildren = 0 #quit 退出
  • 4.znode

    1)短暫節點(ephemeral) 斷開連線會被刪除 create -e
    2)持久節點 (persistent) 斷開不會被刪除 create

持久帶序號 create -s
持久不帶序號 create
短暫帶序號 create -s -e
短暫不帶序號 create -e

[zk: localhost:2181(CONNECTED) 2] create /lijie/test 234
Created /lijie/test

#-s建立帶序號的節點
[zk: localhost:2181(CONNECTED) 3] create -s /lijie/test 345
Created /lijie/test0000000001

[zk: localhost:2181(CONNECTED) 4] create -s /lijie/test 345
Created /lijie/test0000000002

#-e -s, -e表示建立臨時節點,退出就沒有了
[zk: localhost:2181(CONNECTED) 5] create -e -s /lijie/test 345
Created /lijie/test0000000003
  • 5.修改資料
#檢視 /lijie/test的資料 為234
[zk: localhost:2181(CONNECTED) 12] get /lijie/test     
234
cZxid = 0x10000000b
ctime = Tue Nov 15 17:34:08 EST 2016
mZxid = 0x10000000b
mtime = Tue Nov 15 17:34:08 EST 2016
pZxid = 0x10000000b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

#重新設定 /lijie/test
[zk: localhost:2181(CONNECTED) 13] set /lijie/test   66666
cZxid = 0x10000000b
ctime = Tue Nov 15 17:34:08 EST 2016
mZxid = 0x100000010
mtime = Tue Nov 15 17:46:23 EST 2016
pZxid = 0x10000000b
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

#再此獲取 /lijie/test 為 66666
[zk: localhost:2181(CONNECTED) 14] get /lijie/test
66666
cZxid = 0x10000000b
ctime = Tue Nov 15 17:34:08 EST 2016
mZxid = 0x100000010
mtime = Tue Nov 15 17:46:23 EST 2016
pZxid = 0x10000000b
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
  • 6.監聽通知

get 一個數據的時候帶一個watch監聽

#獲取 /lijie/test的內容,並且註冊監聽
[zk: localhost:2181(CONNECTED) 15] get /lijie/test watch
66666
cZxid = 0x10000000b
ctime = Tue Nov 15 17:34:08 EST 2016
mZxid = 0x100000010
mtime = Tue Nov 15 17:46:23 EST 2016
pZxid = 0x10000000b
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

#在另外一臺伺服器登陸zookeeper修改這個路徑的值
[zk: localhost:2181(CONNECTED) 0] set /lijie/test 99999
cZxid = 0x10000000b
ctime = Tue Nov 15 17:34:08 EST 2016
mZxid = 0x100000012
mtime = Tue Nov 15 17:51:30 EST 2016
pZxid = 0x10000000b
cversion = 0
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

#之前那個監聽響應
[zk: localhost:2181(CONNECTED) 16] 
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/lijie/test

ls 帶監聽(子節點變化監聽)

#一臺伺服器客戶端監聽子節點
[zk: localhost:2181(CONNECTED) 1] ls /lijie/test watch

#另外一臺在該節點新增一個子節點
[zk: localhost:2181(CONNECTED) 16] create /lijie/test/tt 888888
Created /lijie/test/tt  

#監聽的客戶端發生響應
[zk: localhost:2181(CONNECTED) 2] 
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/lijie/test