Zookeeper摘要

簡介與應用場景

Zookeeper的幾個應用場景node

Zookeeper簡介(一)算法

zookeeper的學習思路

1.zookeeper 提供了什麼

  • zookeeper 維護了一個 相似 文件系統的數據結構,能夠對節點進行增刪改查。
  • zookeeper有通知機制,客戶端表示關心節點的變化時,zookeeper在節點變化是,會通知到客戶端。

2.基於zookeeper的機制,zookeeper能作什麼

  • 1.命名服務,由於path不會重複,因此名字也不會重複。
  • 2.配置管理,客戶端監聽節點,發生變化時會受到通知,從而實現更新。保證配置的一致性。
  • 3.集羣管理:1.機器的加入與退出。2.選舉master
  • 4.分佈式鎖:1.保持獨佔,經過對node節點加鎖實現的。2.控制時序:經過預先存在的節點,在每次執行時,進行選舉。
  • 5.隊列管理:1.同步隊列,監聽節點的數目,控制隊列的數目。2.FIFO,和控制時序相似。

zookeeper的具體應用場景

數據發佈/訂閱、分佈式應用配置項 、分佈式計數器、統一命名服務、狀態同步服務、集羣管理、master選舉、分佈式鎖、定時任務爭奪、分佈式隊列、分佈式協調/通知。數據庫

輸入圖片說明

數據一致性與paxos算法

聽說Paxos算法的難理解與算法的知名度同樣使人敬仰,因此咱們先看如何保持數據的一致性,這裏有個原則就是:網絡

在一個分佈式數據庫系統中,若是各節點的初始狀態一致,每一個節點都執行相同的操做序列,那麼他們最後能獲得一個一致的狀態。數據結構

Paxos算法解決的什麼問題呢,解決的就是保證每一個節點執行相同的操做序列。好吧,這還不簡單,master維護一個全局寫隊列,全部寫操做都必須 放入這個隊列編號,那麼不管咱們寫多少個節點,只要寫操做是按編號來的,就能保證一致性。沒錯,就是這樣,但是若是master掛了呢。併發

Paxos算法經過投票來對寫操做進行全局編號,同一時刻,只有一個寫操做被批准,同時併發的寫操做要去爭取選票,只有得到過半數選票的寫操做纔會被 批准(因此永遠只會有一個寫操做獲得批准),其餘的寫操做競爭失敗只好再發起一輪投票,就這樣,在日復一日年復一年的投票中,全部寫操做都被嚴格編號排 序。編號嚴格遞增,當一個節點接受了一個編號爲100的寫操做,以後又接受到編號爲99的寫操做(由於網絡延遲等不少不可預見緣由),它立刻能意識到本身 數據不一致了,自動中止對外服務並重啓同步過程。任何一個節點掛掉都不會影響整個集羣的數據一致性(總2n+1臺,除非掛掉大於n臺)。分佈式

總結

Zookeeper 做爲 Hadoop 項目中的一個子項目,是 Hadoop 集羣管理的一個必不可少的模塊,它主要用來控制集羣中的數據,如它管理 Hadoop 集羣中的 NameNode,還有 Hbase 中 Master Election、Server 之間狀態同步等。oop

相關文章
相關標籤/搜索