1. 程式人生 > >好程式設計師大資料學習路線之zookeeper乾貨

好程式設計師大資料學習路線之zookeeper乾貨

好程式設計師大資料學習路線之zookeeper乾貨,上週學習了zookeeper,一開始感覺不容易理解,後來隨著學習的深入,漸漸地明白了很多知識,下面慢慢來介紹zookeeper。

zookeeper是什麼???

zookeeper是一個分散式協調服務,就是為使用者的分散式應用程式提供協調服務的。

zookeeper是為其他的分散式程式提供服務的

zookeeper本身就是一個分散式程式(只要半數以上節點存活,就能提供服務)

zookeeper的特性:

zookeeper:一個leader,多個follower

全域性資料一致性:每個server都儲存一份相同的資料,client無論連線那臺伺服器,都可以得到相同的資料

分散式讀寫,更新請求轉發,由leader實施資料更新的寫操作

更新請求按順序執行,來自同一個client的更新請求會按照其傳送的順序來執行

資料更新的原子性,一次資料要麼更新成功,要麼失敗。

實時性,在一定時間範圍內,client能讀到最新的資料。

應用場景:

統一命名服務;配置管理;叢集管理;共享鎖;佇列管理;

Zookeeper 作為 Hadoop 專案中的一個子專案,是 Hadoop 叢集管理的一個必不可少的模組,它主要用來控制叢集中的資料,如它管理 Hadoop 叢集中的 NameNode,還有 Hbase 中 Master Election、Server 之間狀態同步等。

本文介紹的Zookeeper 的基本知識,以及介紹了幾個典型的應用場景。這些都是 Zookeeper 的基本功能,最重要的是 Zoopkeeper 提供了一套很好的分散式叢集管理的機制,就是它這種基於層次型的目錄樹的資料結構,並對樹中的節點進行有效管理,從而可以設計出多種多樣的分散式的資料管 理模型,而不僅僅侷限於上面提到的幾個常用應用場景。

選舉機制:

1.伺服器ID:資料ID(編號)越大在選擇演算法中的權重越大

2.資料ID:伺服器中存放的資料最大ID、值越大說明資料越新,在選舉演算法種資料越新權重越大。

3.邏輯時鐘:即投票的次數,同一投票過程中的邏輯時鐘都是相同的。每投完一次票這個資料就會加一然後與接收到的其它伺服器返回的投票資訊中的數值相比,根據不同的值做出不同的判斷。

三大功能:

1.為使用者提供資料的註冊和查詢服務

2.為使用者提供資料節點的監聽註冊服務

3.跟使用者之間保持心跳通訊以感