1. 程式人生 > >Zookeeper - 什麼是Zookeeper,以及zookeeper的安裝(1)

Zookeeper - 什麼是Zookeeper,以及zookeeper的安裝(1)

Zookeeper

什麼是Zookeeper?

官網傳送門

ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。

從設計模式來說基於觀察者模式設計的分散式服務管理框架,儲存大家都關心的資料,然後接受觀察者的註冊。一旦這些資料狀態發生變化,zookeeper就將負責通知已經註冊的觀察者做出反應.

Zookeeper的安裝

映象連結

Zookeeper的安裝很簡單,只需要下載壓縮包,然後解壓。

解壓後的目錄:

 

有幾個重要檔案目錄要注意,bin裡面存放著zookeeper命令操作檔案,conf就是配置了。

 1 # The number of milliseconds of each tick
 2 tickTime=2000 心跳時間
 3 # The number of ticks that the initial 
 4 # synchronization phase can take
 5 initLimit=10 初始連線時間,超過這個時間連線失敗 10 * tickTime
 6 # The number of ticks that can pass between 
7 # sending a request and getting an acknowledgement 8 syncLimit=5 資料同步時間 5 * tickTime 9 # the directory where the snapshot is stored. 10 # do not use /tmp for storage, /tmp here is just 11 # example sakes. 12 dataDir=/tmp/zookeeper 資料存放目錄,開發的時候一般會改 13 # the port at which the clients will connect 14 clientPort=2181 初始預設埠
15 # the maximum number of client connections. 16 # increase this if you need to handle more clients 17 #maxClientCnxns=60 18 # 19 # Be sure to read the maintenance section of the 20 # administrator guide before turning on autopurge. 21 # 22 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance 23 # 24 # The number of snapshots to retain in dataDir 25 #autopurge.snapRetainCount=3 26 # Purge task interval in hours 27 # Set to "0" to disable auto purge feature 28 #autopurge.purgeInterval=1 29 ~ 30 ~

 

修改conf檔案下的zoo_simple.cfg 改成zoo.cfg

  • 然後進入到zookeeper/bin/下

 

windows使用zkServer.cmd啟動服務zkCli.cmd啟動客戶端,

linux是使用./zkService.sh start啟動服務./zkCli.sh start啟動服務

也可以用四字命令檢視

echo ruok | nc localhost 2181

出現imok就代表啟動了

這樣我們就已經安裝好了zookeeper了

zookeeper資料結構

zookeeper的資料結構很像檔案系統,但是在zookeeper中並沒有目錄這樣的概念。在zookeeper中每一個結構成為znode(zookeeper node).

/app1等就是路徑PATH
在每個Znode節點中還可以儲存少量的資料,官網的解釋是(ZooKeeper旨在儲存協調資料:狀態資訊,配置,位置資訊等,因此儲存在每個節點的資料通常很小,在位元組到千位元組範圍內。)

通過

create /amber hahaha

可以建立一個PATH為/amber value為hahaha的Znode節點

get /amber

通過get /amber 我們可以在第一行看到znode的value “hahaha” 

 橙色部分統稱為Stat結構體,描述當前znode的資訊

hahaha //znode的value值
cZxid = 0x1d //建立znode的事務id
ctime = Mon Dec 03 23:19:30 CST 2018 //建立時間
mZxid = 0x1d //修改znode的事務id
mtime = Mon Dec 03 23:19:30 CST 2018 //修改時間
pZxid = 0x1d 
cversion = 0 
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0 
dataLength = 6 //value的length
numChildren = 0 //子節點的個數

 除此之外可以通過help檢視zookeeper的操作命令