Zookeeper的實現(xiàn)機制

?一、什么是Zookeeper

Zookeeper是一個hadoop的分布式協(xié)調服務,它包含一個簡單的源語集。分布式應用程序可以基于它市縣同步服務,配置維護和命名服務。Zookeeper本身就是一個分布式集群,提供少量數(shù)據(jù)的存儲和管理。能夠把數(shù)據(jù)在集群內部進行同步,在各個節(jié)點之間能夠保持數(shù)據(jù)的一致性。提供了對數(shù)據(jù)節(jié)點的監(jiān)聽器,對數(shù)據(jù)節(jié)點的數(shù)據(jù)發(fā)生變化,則會記錄。


二、Zookeeper中的角色

Zookeeper中的角色氛圍Leader和Fllower,Leader實現(xiàn)數(shù)據(jù)的寫操作,然后再通知其他的follower,只要超過集群中一半的節(jié)點更新成功,則認為寫操作成功。Leader和Fllower 并不是指定的,而是通過選舉機制投票產生。

1、領導者(leader),負責進行投票的發(fā)起和決議,更新系統(tǒng)狀態(tài)

2、學習者(learner),包括跟隨者(follower)和觀察者(observer),follower用于接受客戶端請求并想客戶端返回結果,在選主過程中參與投票

3、Observer可以接受客戶端連接,將寫請求轉發(fā)給leader,但observer不參加投票過程,只同步leader的狀態(tài),observer的目的是為了擴展系統(tǒng),提高讀取速度

4、客戶端(client),請求發(fā)起方

三、為什么使用Zookeeper?

1、大部分分布式應用需要一個主控、協(xié)調器或控制器來管理物理分布的子進程(如資源、任務分配等)

2、目前,大部分應用需要開發(fā)私有的協(xié)調程序,缺乏一個通用的機制

3、協(xié)調程序的反復編寫浪費,且難以形成通用、伸縮性好的協(xié)調器

4、ZooKeeper:提供通用的分布式鎖服務,用以協(xié)調分布式應用


四、Zookeeper能幫我們做什么?

1、Hadoop2.0,使用Zookeeper的事件處理確保整個集群只有一個活躍的NameNode,存儲配置信息等.

2、HBase,使用Zookeeper的事件處理確保整個集群只有一個HMaster,察覺HRegionServer聯(lián)機和宕機,存儲訪問控制列表等.


五、Zookeeper文件結構

Zookeeper管理客戶所存儲的數(shù)據(jù)采用類似于文件樹的結構:

每個節(jié)點叫做一個node /order-anlalyze(info_data<1M)/aa(info_data<1M)


六、Zookeeper的節(jié)點

1、Znode有兩種類型,短暫的(ephemeral)和持久的(persistent)

2、Znode的類型在創(chuàng)建時確定并且之后不能再修改

3、短暫znode的客戶端會話結束時,zookeeper會將該短暫znode刪除,短暫znode不可以有子節(jié)點

4、持久znode不依賴于客戶端會話,只有當客戶端明確要刪除該持久znode時才會被刪除

5、Znode有四種形式的目錄節(jié)點,PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容