1. 程式人生 > 實用技巧 >zookeeper簡介及基操

zookeeper簡介及基操

 1 zk的安裝:
 2     1. 下載zk.tar.gz安裝包,並解壓至/usr/local/devInstall
 3     2. 在zk的目錄下新建資料夾data
 4     3. 複製zk/config目錄下的zoo_sample.cfg,重新命名為zoo.cfg,vim zoo.cfg,將其中的dataDir=步驟2中data的目錄;dataDir指定的路徑用於儲存zk中資料的記憶體快照,及事務檔案。
 5 啟動zk:
 6     1. 進入zk的bin目錄
 7     2. 啟動zk:./zkServer.sh start
 8     3. 檢視狀態:./zkServer.sh status
9 4. 停止zk: ./zkServer.sh stop 10 啟動zk客戶端: 11 1. 進入zk的bin目錄 12 2. 啟動:./zkCli.sh 13 3. 停止:quit 14 zk常用的shell命令: 15 -新增節點: 16 create [-s] [-e] path data #其中-s為有序節點,-e為臨時節點;預設建立的節點都是持久化節點。 17 eg:建立持久化節點並寫入資料: 18 [zk: localhost:2181(CONNECTED) 9] create /hadoop "123456" 19
Created /hadoop 20 建立持久化有序節點,此時建立的節點名為指定節點名+自增序號: 21 [zk: localhost:2181(CONNECTED) 10] create -s /a "aaa" 22 Created /a0000000007 23 建立臨時節點,臨時節點會在會話過期後被刪除: 24 [zk: localhost:2181(CONNECTED) 11] create -e /tmp "tempo" 25 Created /tmp
26 建立臨時有序節點,也會在會話過期後被刪除: 27 [zk: localhost:2181(CONNECTED) 12] create -s -e /aa "aaa" 28 Created /aa0000000009 29 -更新節點:每次更新後dataVersion都會自增1 30 -更新節點的命令是set,可以直接進行修改,如下: 31 [zk: localhost:2181(CONNECTED) 14] set /hadoop "12345" 32 cZxid = 0x23 33 ctime = Wed Jul 15 13:28:02 CST 2020 34 mZxid = 0x27 35 mtime = Wed Jul 15 13:35:06 CST 2020 36 pZxid = 0x23 37 cversion = 0 38 dataVersion = 1 39 aclVersion = 0 40 ephemeralOwner = 0x0 41 dataLength = 5 42 numChildren = 0 43 -也可以基於版本號進行修改,此時類似於樂觀鎖機制,當你傳入的資料版本號(dataVersion)和當前節點資料版本號不符合時,zk會拒絕本次修改: 44 [zk: localhost:2181(CONNECTED) 16] set /hadoop "12343" 1 45 version No is not valid : /hadoop 46 -刪除節點: 47 刪除節點的語法如下: 48 delete path [version] 49 和更新節點資料一樣,也可以傳入版本號。當傳入的版本號和此節點的資料版本號不一致時,zk也不會執行刪除操作。 50 要向刪除某個節點及其所有後代節點,可以使用遞迴刪除,命令為rmr path; 51 -檢視節點: 52 檢視節點的語法如下: 53 get path 54 -檢視節點狀態: 55 可以使用stat命令檢視節點狀態,它的返回值和get命令類似,但不會返回節點資料: 56 stat path 57 -檢視節點列表: 58 檢視節點列表有ls path 和 ls2 path兩個命令,後者是前者的增強,不僅可以檢視指定路徑下所有節點,還可以檢視當前節點的資訊。 59 -監聽器get path [watch] 60 使用get path [watch] 註冊的監聽器能夠在節點內容發生改變的時候,向客戶端發出通知。需要注意的是,zk的觸發器是一次性的(one-time-trigger),即觸發一次後就會立即失效。 61 eg: 62 get /hadoop watch 63 set /hadoop watch 45678 64 [zk: localhost:2181(CONNECTED) 1] set /hadoop "45678" 65 WATCHER:: 66 WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop 67 -監聽器stat path [watch] 68 使用stat path [watch] 註冊的監聽器能夠在節點狀態發生改變的時候,向客戶端發出通知。 69 [zk: localhost:2181(CONNECTED) 2] stat /hadoop watch 70 [zk: localhost:2181(CONNECTED) 3] set /hadoop 12344 71 WATCHER:: 72 WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop 73 -監聽器ls\ls2 path [watch] 74 使用ls path [watch] 或 ls2 path [watch] 註冊的監聽器能夠監聽該節點下所有子節點的增加和刪除操作。注意:只能捕獲增加和刪除,節點資料的修改不能捕獲。