監控集群中的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...