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 acknowledgement8 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)