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

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

target 一致性 啟動 handle local his 設計模式 urg client

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的操作命令

技術分享圖片

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