Zookeeper自探
自己的話:每天都要保持前進,我勢必要有強勁的實力再跟全新的自己問好。
多認識更加優秀的人,你會討厭現在的自己。
Zookeeper實戰
一、分佈式安裝部署
詳見Zookeeper自探(二)—Zookeeper安裝
二、客戶端命令行操作
1.啓動客戶端
[hadoop1 zookeeper-3.4.10]$ bin/zkCli.sh
2.顯示所有操作命令
[zk: localhost:2181(CONNECTED) 1] help
3.查看當前 znode 中所包含的內容
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
4.查看當前節點詳細數據
[zk: localhost:2181(CONNECTED) 1] ls2 /
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
5.分別創建 2 個普通節點
[zk: localhost:2181(CONNECTED) 3] create /sanguo "jinlian"
Created /sanguo
[zk: localhost:2181(CONNECTED) 4] create /sanguo/shuguo
"liubei"
Created /sanguo/shuguo
6.獲得節點的值
[zk: localhost:2181(CONNECTED) 5] get /sanguo
jinlian
cZxid = 0x100000003
ctime = Wed Aug 29 00:03:23 CST 2018
mZxid = 0x100000003
mtime = Wed Aug 29 00:03:23 CST 2018
pZxid = 0x100000004
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 1
[zk: localhost:2181(CONNECTED) 6]
[zk: localhost:2181(CONNECTED) 6] get /sanguo/shuguo
liubei
cZxid = 0x100000004
ctime = Wed Aug 29 00:04:35 CST 2018
mZxid = 0x100000004
mtime = Wed Aug 29 00:04:35 CST 2018
pZxid = 0x100000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
7.創建短暫節點
[zk: localhost:2181(CONNECTED) 7] create -e /sanguo/wuguo
"zhouyu"
Created /sanguo/wuguo
(1)在當前客戶端是能查看到的
[zk: localhost:2181(CONNECTED) 3] ls /sanguo
[wuguo, shuguo]
(2)退出當前客戶端然後再重啓客戶端
[zk: localhost:2181(CONNECTED) 12] quit
[@hadoop3 zookeeper-3.4.10]$ bin/zkCli.sh
(3)再次查看根目錄下短暫節點已經刪除
[zk: localhost:2181(CONNECTED) 0] ls /sanguo
[shuguo]
8.創建帶序號的節點
(1)先創建一個普通的根節點/sanguo/weiguo
[zk: localhost:2181(CONNECTED) 1] create /sanguo/weiguo
"caocao"
Created /sanguo/weiguo
(2)創建帶序號的節點
[zk: localhost:2181(CONNECTED) 2] create -s
/sanguo/weiguo/xiaoqiao "jinlian"
Created /sanguo/weiguo/xiaoqiao0000000000
[zk: localhost:2181(CONNECTED) 3] create -s
/sanguo/weiguo/daqiao "jinlian"
Created /sanguo/weiguo/daqiao0000000001
[zk: localhost:2181(CONNECTED) 4] create -s
/sanguo/weiguo/diaocan "jinlian"
Created /sanguo/weiguo/diaocan0000000002
如果原來沒有序號節點,序號從 0 開始依次遞增。如果原節點下已有 2 個節點,則再
排序時從 2 開始,以此類推。
9.修改節點數據值
[zk: localhost:2181(CONNECTED) 6] set /sanguo/weiguo "simayi"
10.節點的值變化監聽
(1)在 hadoop104 主機上註冊監聽/sanguo 節點數據變化
[zk: localhost:2181(CONNECTED) 26] [zk:
localhost:2181(CONNECTED) 8] get /sanguo watch
(2)在 hadoop103 主機上修改/sanguo 節點的數據
[zk: localhost:2181(CONNECTED) 1] set /sanguo "xisi"
(3)觀察 hadoop104 主機收到數據變化的監聽
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged
path:/sanguo
11.節點的子節點變化監聽(路徑變化)
(1)在 hadoop104 主機上註冊監聽/sanguo 節點的子節點變化
[zk: localhost:2181(CONNECTED) 1] ls /sanguo watch
[aa0000000001, server101]
(2)在 hadoop103 主機/sanguo 節點上創建子節點
[zk: localhost:2181(CONNECTED) 2] create /sanguo/jin "simayi"
Created /sanguo/jin
(3)觀察 hadoop104 主機收到子節點變化的監聽
WATCHER::
WatchedEvent state:SyncConnected type:NodeChildrenChanged
path:/sanguo
12.刪除節點
[zk: localhost:2181(CONNECTED) 4] delete /sanguo/jin
13.遞歸刪除節點
[zk: localhost:2181(CONNECTED) 15] rmr /sanguo/shuguo
14.查看節點狀態
[zk: localhost:2181(CONNECTED) 17] stat /sanguo
cZxid = 0x100000003
ctime = Wed Aug 29 00:03:23 CST 2018
mZxid = 0x100000011
mtime = Wed Aug 29 00:21:23 CST 2018
pZxid = 0x100000014
cversion = 9
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1
三、API應用
由於本人學習目的是瞭解zookeeper,所以該模塊未進行學習。