在學習hbase時,官方文件說hbase依賴於zookeeper來管理與跟蹤其分布式資料的狀態,hregionserver與hmaster都需要向它註冊。那什麼是zookeeper呢?今天學習一下:
1、zookeeper是什麼
zookeeper是一種分布式協調服務,用於管理大型主機。在分布式環境中協調和管理服務是乙個複雜的過程。zookeeper通過其簡單的架構和api解決了這個問題。zookeeper允許開發人員專注於核心應用程式邏輯,而不必擔心應用程式的分布式特性。
zookeeper是由集群(節點組)使用的一種服務,用於在自身之間協調,並通過穩健的同步技術維護共享資料。zookeeper本身是乙個分布式應用程式,為寫入分布式應用程式提供服務。
那什麼是分布式應用呢?
分布式應用可以在給定時間(同時)在網路中的多個系統上執行,通過協調它們以快速有效的方式完成特定任務。在單機上可能需要花幾個小時的計算的任務,分布式通過使用所有系統的來計算,就可以幾分鐘就完成了。
分布式應用正在執行的一組系統稱為集群,而在集群中執行的每台機器被稱為節點。分布式應當有兩部分:server 與client
server伺服器應用程式實際上是分布式的,並具有通用介面,以便客戶端可以連線到集群中的任何伺服器並獲得相同的結果。 客戶端應用程式是與分布式應用進行互動的工具。
2、zookeeper提供哪些服務
3、zookeeper的架構
部分描述
client(客戶端)
客戶端,我們的分布式應用集群中的乙個節點,從伺服器訪問資訊。對於特定的時間間隔,每個客戶端向伺服器傳送訊息以使伺服器知道客戶端是活躍的。
類似地,當客戶端連線時,伺服器傳送確認碼。如果連線的伺服器沒有響應,客戶端會自動將訊息重定向到另乙個伺服器。
server(伺服器)
伺服器,我們的zookeeper總體中的乙個節點,為客戶端提供所有的服務。向客戶端傳送確認碼以告知伺服器是活躍的。
ensemble
zookeeper伺服器組。形成ensemble所需的最小節點數為3。
leader
伺服器節點,如果任何連線的節點失敗,則執行自動恢復。leader在服務啟動時被選舉。
follower
跟隨leader指令的伺服器節點。
下圖描述了用於記憶體表示的zookeeper檔案系統的樹結構。zookeeper節點稱為znode。每個znode由乙個名稱標識,並用路徑(/)序列分隔。
zookeeper資料模型中的每個znode都維護著乙個stat結構。乙個stat僅提供乙個znode的元資料。它由版本號,操作控制列表(acl),時間戳和資料長度組成。
znode被分為持久(persistent)節點,順序(sequential)節點和臨時(ephemeral)節點。
會話對於zookeeper的操作非常重要。會話中的請求按fifo順序執行。一旦客戶端連線到伺服器,將建立會話並向客戶端分配會話id。
客戶端以特定的時間間隔傳送心跳以保持會話有效。如果zookeeper集合在超過伺服器開啟時指定的期間(會話超時)都沒有從客戶端接收到心跳,則它會判定客戶端宕機。
會話超時通常以毫秒為單位。當會話由於任何原因結束時,在該會話期間建立的臨時節點也會被刪除。
監視是一種簡單的機制,使客戶端收到關於zookeeper集合中的更改的通知。客戶端可以在讀取特定znode時設定watches。watches會向註冊的客戶端傳送任何znode(客戶端登錄檔)更改的通知。
znode更改是與znode相關的資料的修改或znode的子項中的更改。只觸發一次watches。如果客戶端想要再次通知,則必須通過另乙個讀取操作來完成。當連線會話過期時,客戶端將與伺服器斷開連線,相關的watches也將被刪除。
找到兩篇優秀blog參考:
安裝zookeeper
Hadoop學習筆記和總結(一)
大資料 即海量資料,資料量特別大的資料。大資料的特點 1 資料量大 能達到tb pb級別。1tb 1024gb,1pb 1024tb 2 資料增長的速度快 4 資料的價值密度低 整體的價值高 1 公司自己的業務資料 如電商的訂單資料 日誌資料等。2 通過網路爬蟲爬取獲得的資料 由於獲取的資料質量不同...
Hadoop學習筆記和總結(五)
目錄 第五章 hadoop的設計思想 5.1 hdfs和hdfs設計思想 5.1.1 分而治之 5.1.2 備份機制 5.2 hdfs的整體架構 5.2.1 主節點 namenode 5.2.2 從節點 datanode 5.2.3 冷備份節點 secondarynamenode 5.3 hdfs的...
Hadoop學習筆記和總結(八)
目錄 第八章 hdfs中元資料的管理 8.1 元資料 8.1.1 什麼是元資料?8.1.2 元資料儲存在 8.2 元資料的寫入機制 8.3 合併 checkpoint 8.3.1 元資料合併前 8.3.2 元資料合併 checkpoint 8.4 總結集群中各節點的作用 8.4.1 namenode...