目錄
Zookeeper的概念
Zookeeper的原理
Zookeeper的結構
Zookeeper的會話
Zookeeper的作用
Zookeeper的搭建流程
Zookeeper是什麼?·
分散式的、開放原始碼的分散式應用程式協調服務
Hadoop的重要元件,進行 Namenodel的協調控制
Zookeeper如何工作?
Zookeeper都有誰?
(1)領導者(Leader)
(2)學習者(Learner)
追隨者(Follower)
觀察者(Observer)
(3)客戶端(Client)
Server的狀態
LOOKING:
不知道Leader是誰?正在搜尋中……
LEADING:
當前的Server選舉出來Leader,也就是成為Leader的一種狀態
FLOWING:
Leader選舉出來,其他的Server的同步
Zookeeper中的溝通
Session(會話)
1。
SessionID:
Zookeeper會分配一個全域性的
唯一可用的
SessionID
2。
TimeOut:
超時時間,如果超時會話中止
3。
TickTime:
下一次會話的超時的時間點
4。
isCloseing:
標記當前會話是否已經關閉了
Zookeeper的心跳機制
在整個 Zookeeper執行過程中,客戶端會在超時時間內向服務端傳送PING請求來保持時效性,俗稱心跳檢測,而服務端在接受到了客戶端的心跳請求後需要再次啟用會話狀態。
◆ tickTime:CS通訊心跳數
Zookeeper伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 tickTime時間就會發送一個心跳。 tickTime以毫秒為單位。
◆ initLimit:LF初始通訊時限
叢集中的 follower伺服器(F)與 leader伺服器(L)之間初始連線時能容忍得最多心跳數( tickTime的數量)。
◆ synclimit:LF同步通訊時限
叢集中的 follower伺服器(F)與 leader伺服器(L)之間請求和應答之間能容忍的最多心跳數( tickTime的數量)。
ZooKeeper的 ”聊天記錄“
dataLog:順序日誌
需要配置:dataLogDir,dataDir
Zookeeper節點資料操作流程
1。 Client向 Follwer發出一個寫的請求
2。 Follwer把請求傳送給 Leader
3。 Leader接收到以後開始發起投票並通知 Follwer進行投票
4。 Follwer把投票結果傳送給 Leader
5。 Leader將結果彙總後如果需要寫入,則開始寫入的同時把寫入操作通知給 Follwer,然後 commit
6。 Follwer把請求結果返回給 Client
ZooKeeper的作用
(1)配置管理
只需要部署一臺伺服器則可以把相同的配置檔案,同步更新到其他所有伺服器
在 Hadoop中,確保整個叢集只有一個 Namenode儲存配置資訊等
(2)統一命名服務
(3)分散式同步
(4)叢集管理
Zookeeper搭建流程
1建立工作路徑;
2。解壓軟體
3。配置 zoo。 cfg
tickTime=2000 # 心跳間隔 initLimit=10 #最大初始時間制10倍心跳synclimit=5 #請求應含的長5倍心跳dataDir=/usr/zookeeper/zookeepe-3。1。14/zkdata #資料目錄clientPort=2187#客戶端、版務端連線埠dataLogDir=/usr/zookeeper/zookeepe-3。1。14/zkdatalog r#日誌目錄server。1= master:2888:3888 #叢集列表servre。2=slave1:2888:3888server。3=slave2:2888:3888
◆安裝 zookeeper
配置的 data Dir指定的目錄下面,建立一個
myid
檔案。裡面內容為一個數字,用來標識當前主機。
server X中X為什麼數字,則myid檔案中就輸入這個數字。
每個節點上執行啟動 ZooKeeper服務的指令碼。
zkServer。sh start #啟動服務zkServer。sh status #檢視狀態
結果應該是:一個節點是 Leader,其餘的節點是Fo|lwer。