深入理解HBase的系統架構

2021-08-20 13:58:11 字數 1207 閱讀 6498

監控集群中的region server的工作狀態。(通過監聽zookeeper對於ephemeral node狀態的通知)。

管理資料庫 

客戶向該region server查詢負責管理自己想要訪問的row key的所在的region的region server的位址。客戶會快取這一資訊以及meta table所在位置的資訊。

客戶與負責其row所在region的region server通訊,實現對該行的讀寫操作。

meta table的格式類似於b tree。

meta table的結構如下: 

block cache:block cache是讀快取。block cache將經常被讀的資料儲存在記憶體中來提高讀取資料的效率。當block cache的空間被佔滿後,其中被讀取頻率最低的資料將會被殺出。

memstore:memstore是寫快取。其中儲存了從wal中寫入但尚未寫入硬碟的資料。memstore中的資料在寫入硬碟之前會先進行排序操作。每乙個region中的每乙個column family對應乙個memstore。

hfiles:hfiles存在於硬碟上,根據排序號的鍵儲存資料行。

當server出現問題之後,wal可以被用來恢復尚未寫入hbase中的資料(因為wal是儲存在硬碟上的)。

索引指向64kb大小的資料塊。

每乙個資料塊還有其相應的葉索引(leaf-index)。

每乙個資料塊的最後乙個鍵作為中間索引(intermediate index)。

根索引(root index)指向中間索引。

接下來,hbase會從memstore中尋找資料。因為作為hbase的寫快取,memstore中包含了最新版本的資料。

如果hbase從block cache和memstore中沒有找到行所對應的cell所有的資料,系統會接著根據索引和bloom filter從相應的hfile中讀取目標行的cell的資料。

每乙個region的預設大小為1gb。

相應的region server負責向客戶提供訪問某一region中的資料的服務。

每乙個region server能夠管理大約1000個region(這些region可能來自同乙個**,也可能來自不同的**)。

可靠的自動擴充套件 

內建的恢復功能 

與hadoop整合良好 

異常恢復複雜且低效。

需要進行占用大量資源和大量i/o操作的major compaction。

深入理解HBase

思考 hbase伺服器內部由那些主要部件構成?hbase的內部工作原理是什麼?1.hbase的工作原理 首先hbase client端會連線zookeeper qurom 從下面的 也能看出來,例 如 hbase config.set hbase.zookeeper.quorum 192.168.5...

深入理解Symbian控制項架構

在symbian程式中我們經常會看到import c這個關鍵字,它是c symbian 8.0a s60 2nd fp2 sc epoc32 include下e32def.h檔案裡面定義的乙個巨集.原定義如下 define import c declspec dllexport 那麼 declspe...

深入理解系統呼叫

一.實驗要求 二.實驗環境搭建 1.安裝開發工具 sudo apt install build essential sudo apt install qemu install qemu sudo apt install libncurses5 dev bison ex libssl dev libe...