zookeeper结构和命令详解
1.1. zookeeper特性
1、Zookeeper:一個leader,多個follower組成的集群
2、全局數據一致:每個server保存一份相同的數據副本,client無論連接到哪個server,數據都是一致的
3、分布式讀寫,更新請求轉發,由leader實施
4、更新請求順序進行,來自同一個client的更新請求按其發送順序依次執行
5、數據更新原子性,一次數據更新要么成功,要么失敗
6、實時性,在一定時間范圍內,client能讀到最新數據
1.2. zookeeper數據結構
1、層次化的目錄結構,命名符合常規文件系統規范(見下圖)
2、每個節點在zookeeper中叫做znode,并且其有一個唯一的路徑標識
3、節點Znode可以包含數據和子節點(但是EPHEMERAL類型的節點不能有子節點,下一頁詳細講解)
4、客戶端應用可以在節點上設置監視器(后續詳細講解)
1.3. 數據結構的圖
1.4. 節點類型
1、Znode有兩種類型:
短暫(ephemeral)(斷開連接自己刪除)
持久(persistent)(斷開連接不刪除)
2、Znode有四種形式的目錄節點(默認是persistent )
PERSISTENT
PERSISTENT_SEQUENTIAL(持久序列/test0000000019)
EPHEMERAL
EPHEMERAL_SEQUENTIAL
3、創建znode時設置順序標識,znode名稱后會附加一個值,順序號是一個單調遞增的計數器,由父節點維護
4、在分布式系統中,順序號可以被用于為所有的事件進行全局排序,這樣客戶端可以通過順序號推斷事件的順序
1.5. zookeeper命令行操作
運行?zkCli.sh?–server?<ip>進入命令行工具.
首先進入zookeeper的bin目錄下并執行zkCli.sh文件
可以有以下常用的指令操作:
1、使用 ls 命令來查看當前 ZooKeeper 中所包含的內容:
[zk: 202.115.36.251:2181(CONNECTED) 1] ls /
2、創建一個新的 znode ,使用 create /zk myData 。這個命令創建了一個新的 znode 節點“ zk ”以及與它關聯的字符串:
[zk: 202.115.36.251:2181(CONNECTED) 2] create /zk "myData“
3、我們運行 get 命令來確認 znode 是否包含我們所創建的字符串:
[zk: 202.115.36.251:2181(CONNECTED) 3] get /zk
#監聽這個節點的變化,當另外一個客戶端改變/zk時,它會打出下面的
#WATCHER::
#WatchedEvent state:SyncConnected type:NodeDataChanged path:/zk
[zk: localhost:2181(CONNECTED) 4] get /zk watch
例如:[zk: weijie2(CONNECTED) 12] ls /node01 watch 當在node01下創建子節點可以被監聽到
4、下面我們通過 set 命令來對 zk 所關聯的字符串進行設置:
[zk: 202.115.36.251:2181(CONNECTED) 4] set /zk "zsl“
5、下面我們將剛才創建的 znode 刪除當前節點子節點不會被刪除:
[zk: 202.115.36.251:2181(CONNECTED) 5] delete /zk
6、刪除節點:rmr刪除該節點以及它的子節點
[zk: 202.115.36.251:2181(CONNECTED) 5] rmr /zk
7、連接其他主機
connect 主機名或ip地址
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的zookeeper结构和命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html中article、section
- 下一篇: CNN(Convolutional Ne