Zookeeper應用


Zookeeper 為分散式環境靈活協調提供基礎架構。ZooKeeper框架支援許多當今許多工業應用。我們將在本章中討論一些 ZooKeeper 顯著的應用。

Yahoo!

ZooKeeper框架始建於「雅虎」。一個設計良好的分散式應用需求,滿足需求,如資料的透明度,更好的效能,穩定性,集中組態和協調性。所以,他們設計了ZooKeeper框架來滿足這些要求。

Apache Hadoop

Apache Hadoop是巨量資料行業的增長背後的驅動力。Hadoop依賴ZooKeeper的組態管理和協調。讓我們舉一個場景來瞭解 ZooKeeper 在 Hadoop 中的作用。

假設一個Hadoop叢集橋接100以上的商用伺服器。因此,有必要協調和命名這些伺服器。由於大量節點的計算都參與其中,每個節點都需要互相同步,知道在哪裡獲得服務,並知道應該如何組態。在這個時間點上,Hadoop叢集需要跨節點服務。ZooKeeper提供了跨節點同步的裝置,確保整個的Hadoop專案的任務是序列化和同步的。

多重ZooKeeper伺服器支援大型 Hadoop 叢集。每個客戶機與 ZooKeeper 的其中一個伺服器通訊,以檢索和更新其同步資訊。一些實時範例如下 -

  • 人類基因組計劃 ? 人類基因組計劃中包含TB級別的資料。Hadoop的MapReduce框架可以用來分析資料集,並找到對人類發展有趣的事情。

  • 衛生保健 ? 醫院可以儲存,檢索和分析大量套門診病歷,通常都在TB級。

Apache HBase

Apache HBase是一個開源的,分散式的, 用於實時NoSQL資料庫讀取的大型資料集/寫存取,並執行在HDFS之上。 HBase如下主從架構,HBase主管理所有的從服務。從服務被稱為區域伺服器。

HBase 分散式應用程式的安裝取決於ZooKeeper執行的叢集。Apache HBase 使用ZooKeeper 與集中組態管理,分散式互斥機制的幫助下跟蹤分散式資料的整個主區域伺服器的狀態。下面是一些HBase的用例 -

  • 電信業 ? 電信業儲存數十億的手機通話記錄(大約30TB/月),存取這些通話記錄實時成為一項艱鉅的任務。HBase可用於所有記錄的實時處理,容易且有效。

  • 社群網路 ? 類似電信業,網站如Twitter,LinkedIn和Facebook通過使用者建立的貼文內容接收大量資料。HBase 可以用來找出最近的趨勢和其他有趣的事實。

Apache Solr

Apache Solr是用Java編寫實現快速,開源的搜尋平台。這是一個速度極快,容錯分散式搜尋引擎。建立在Lucene之上,它是一個高效能,全功能的文字搜尋引擎。

Solr被廣泛使用在ZooKeeper的每一個功能,如組態管理,領導人選舉,節點管理,鎖定和資料的同步。

Solr有兩個不同的部分,索引和搜尋。索引是將資料儲存在一個適當的格式,以便它可以在以後檢索處理。Solr使用ZooKeeper為索引資料在多個節點,並從多個節點中搜尋。ZooKeeper 分布有以下特點-

  • 在需要的時候新增/刪除節點

  • 最小化資料丟失並隨後複製節點資料

  • 共用多個節點之間的資料,並從多個節點更快的搜尋結果

一些Apache Solr實現用例包括電子商務,求職等。