HBase 架構:你需要知道的一切 [2022]
已發表: 2021-01-06結構化和非結構化數據都呈指數級增長, Apache Hadoop已證明其在處理如此龐大的數據方面的卓越表現。 因此,Apache Hadoop 在大數據領域獲得了很大的關注。 但是,Hadoop 的 HDFS 架構存在一定的局限性。
HDFS 輸出高延遲操作,無法同時處理大量的讀寫請求。 另一個限制是 HDFS 是一次寫入多次讀取的架構,這意味著它必須完全重寫文件才能更改數據集。 HDFS 架構的這些限制提出了對HBase 架構的需求。
目錄
什麼是 HBase?
HBase 是一種面向列的數據存儲架構,它建立在 HDFS 之上以克服其局限性。 它利用 HDFS 的基本功能並在此基礎上通過實時處理大量讀寫請求來提供可擴展性。 儘管HBase 架構是一個 NoSQL 數據庫,但它通過將數據均勻分佈在集群中來簡化維護數據的過程。 這使得訪問和更改 HBase 數據模型中的數據變得快速。 了解有關 HBase 的更多信息。
HBase 數據模型的組成部分是什麼?
由於 HBase 數據模型是 NoSQL 數據庫,因此開發人員可以在需要時輕鬆讀取和寫入數據,使其比 HDFS 架構更快。 它由以下組件組成:
1. HBase Tables : HBase架構是面向列的; 因此,數據存儲在基於表格格式的表格中。
2. RowKey : RowKey 分配給每組記錄的數據。 這使得在 HBase 表中搜索特定數據變得容易。

3. 列:列是數據集的不同屬性。 每個 RowKey 可以有無限的列。
4. 列族:列族是幾個列的組合。 讀取列族的單個請求可以訪問該族中的所有列,從而更快、更輕鬆地讀取數據。
5. 列限定符:列限定符類似於普通表中的列標題或屬性名稱。
6. Cell :它是一個行列元組,使用 RowKey 和列限定符標識。
7. 時間戳:每當數據存儲在 HBase 數據模型中時,都會使用時間戳進行存儲。
閱讀:Hadoop 生態系統的組成部分
HBase 架構的組件有哪些?
HBase 架構包括三個主要組件, HMaster、Region Server 和 ZooKeeper。
1. HMaster
HMaster 的運作方式與其名稱相似。 將區域分配給 Region Server(從屬)的是 master。 HBase 架構使用自動分片過程來維護數據。 在這個過程中,每當一個 HBase 表變得太長時,它都會由系統在 HMaster 的幫助下分發。 HMaster 的一些典型職責包括:
- 控制故障轉移
- 管理 Region Server 和 Hadoop 集群
- 處理 DDL 操作,例如創建和刪除表
- 管理元數據操作中的更改
- 管理區域並將區域分配給區域服務器
- 接受請求並將其發送到相關的 Region Server
2.區域服務器
區域服務器是處理所有用戶請求的終端節點。 幾個區域組合在一個區域服務器中。 這些區域包含指定鍵之間的所有行。 處理用戶請求是一項複雜的執行任務,因此區域服務器進一步分為四個不同的組件,以無縫管理請求。

- 預寫日誌(WAL) :WAL 附加到每個區域服務器並存儲尚未提交到驅動器的臨時數據。
- Block Cache :是讀請求緩存; 所有最近讀取的數據都存儲在塊緩存中。 不經常使用的數據在存滿時會自動從庫存中刪除。
- MemStore :它是一個寫緩存,負責存儲尚未寫入磁盤的數據。
- HFile :HFile 存儲提交後的所有實際數據。
3.動物園管理員
ZooKeeper 充當跨HBase 架構通信的橋樑。 它負責跟踪所有的 Region Server 和其中的區域。 監控哪些 Region Server 和 HMaster 處於活動狀態,哪些發生故障也是 ZooKeeper 職責的一部分。 當它發現某個 Server Region 發生故障時,它會觸發 HMaster 採取必要的行動。 另一方面,如果 HMaster 本身發生故障,它會觸發在警報後變為活動的非活動 HMaster。 每個用戶甚至 HMaster 都需要通過 ZooKeeper 訪問 Region Servers 和其中的數據。 ZooKeeper 存儲一個.Meta文件,其中包含所有區域服務器的列表。 ZooKeeper 的職責包括:
- 跨 Hadoop 集群建立通信
- 維護配置信息
- 跟踪 Region Server 和 HMaster 故障
- 維護 Region Server 信息
HBase 架構中的請求是如何處理的?
現在我們知道了HBase 架構的主要組件及其功能,讓我們深入研究整個架構中如何處理請求。
1.開始搜索HBase架構
初始化搜索的步驟是:
- 用戶從 ZooKeeper 中檢索 Meta 表,然後請求相關 Region Server 的位置。
- 然後用戶將在 RowKey 的幫助下從 Region Server 請求確切的數據。
2. HBase架構中的寫機制
在HBase 架構中編寫的步驟是:
- 客戶端首先必須找到區域服務器,然後找到數據的位置來更改它。 (此步驟僅用於轉換數據,不用於寫入新信息)
- 實際的寫入請求從客戶端寫入數據的 WAL 開始。
- WAL 將數據傳輸到 MemStore 並向用戶發送確認。
- 當 MemStore 填滿數據時,它會將數據提交到 HFile,並存儲在那裡。
3. HBase架構中的讀取機制
要讀取任何數據,用戶首先必須訪問相關的區域服務器。 知道 Region Server 後,其他過程包括:

- 第一次掃描是在讀取緩存中進行的,即塊緩存。
- 下一個掃描位置是 MemStore,也就是寫緩存。
- 如果在塊緩存或 MemStore 中沒有找到數據,掃描器將從 HFile 中檢索數據。
數據恢復在 HBase 架構中如何操作?
Hbase架構通過 compaction 和 region split 來打斷數據,以減少集群中的數據負載。 但是,如果發生崩潰並需要恢復,則可以這樣做:
- 當服務器發生故障時,ZooKeeper 會觸發 HMaster。
- HMaster 將崩潰的區域和 WAL 分發到活動的區域服務器。
- 這些 Region Server 重新執行 WAL 並構建 MemStore。
- 當所有 Region Servers 重新執行 WAL 時,所有數據連同列族都被恢復。
結帳: Hadoop 生態系統和組件
底線
數據已成為各行各業的新石油。 因此,在 Hadoop 中有多種職業機會。 您可以在upGrad了解有關 Hadoop 和大數據的所有信息。
如果您有興趣了解有關 Hbase、大數據的更多信息,請查看我們的大數據軟件開發專業化 PG 文憑課程,該課程專為在職專業人士設計,提供 7 個以上案例研究和項目,涵蓋 14 種編程語言和工具,實用的手- 研討會,超過 400 小時的嚴格學習和頂級公司的就業幫助。
從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。