1. 程式人生 > >大資料生態之zookeeper(shell使用)

大資料生態之zookeeper(shell使用)

進入zk的客戶端:zkCli.sh -server hadoop01:2181 

檢視znode子節點內容: ls /

建立znode節點:create /zookeeper/node1 ‘內容’ (內容必須新增,不然建立不成功)

獲取 znode 資料:get /ZooKeeper

設定znode資料:set / zookeeper/node1 ‘內容’

監聽znode 事件:ls /ZooKeeper watch # 就對一個節點的子節點變化事件註冊了監聽

get /ZooKeeper watch ## 就對一個節點的資料內容變化事件註冊了監聽

建立臨時 znode 節點:create -e /zk/temp "myData"

建立順序 znode 節點:create -s /zk "myData" 

刪除節點:delete /zk   #只能刪除沒有子 znode 的 znode

rmr /zk    # 不管裡頭有多少 znode,統統刪除

連線zk:connect host:port

檢視節點的歷史命令:history

檢視節點的狀態:stat path

注意這裡補充:在執行命令:stat zenode_name  資訊相關介紹:

cZxid = 0x0 #節點建立的時候的zxid

ctime = Thu Jan 01 08:00:00 CST 1970 #節點建立的時候的時間

mZxid = 0x0 #節點修改的時候zxid

mtime = Thu Jan 01 08:00:00 CST 1970 #節點的修改的時間

pZxid = 0x0 #和子節點的建立/刪除對應的 zxid

cversion = -1 #子節點的更新次數

dataVersion = 0 #節點資料的更新次數

aclVersion = 0 #節點(ACL)的更新次數

ephemeralOwner = 0x0 #如果該節點為 ephemeral 節點, ephemeralOwner 值表示與該節點綁 定的 session id. 如果該節點不是 ephemeral 節點, ephemeralOwner 值為 0,用於在客戶端退出時,刪除臨時節點的。

dataLength = 0 #節點資料的位元組數

numChildren = 1 #子節點個數,不包含孫子節點

重點

①對於ephemeralOwner: 如果是永久節點 ,值= 0x0。如果是臨時節點,zk每次進入客戶端的時候都會有一個當前客戶端的sessionid,如果是臨時節點,其ephemeralOwner 的值就等於sessionid

②zxid:當前節點全域性唯一標識,全域性性的順序遞增,id實際上是標識,全域性的事件提交順序。每一次事件提交的時候,都是在全域性的最大的id之上,進行順序遞增,zxid用於標識整個分散式叢集中各個節點的資料版本,這個值越大表示版本越新