發表文章

目前顯示的是 2月, 2015的文章

[TRACE] org.apache.hadoop.hbase.util.HMerge

在之前介紹過hbase中的merge工具:  org.apache.hadoop.hbase.util.Merge 由於org.apache.hadoop.hbase.util.Merge有許多限制, 尤其是cluster必須offline, 以致在實體環境中難以適用... 這一次介紹的是另外一個merge工具: org.apache.hadoop.hbase.util.HMerge org.apache.hadoop.hbase.util.HMerge (HMerge)有兩種不同的模式: 對於一般table的online merge, 以及對於.META. table的offline merge. 簡單來說, HMerge提供了和auto split相反的功能, HMerge會去檢查相鄰的Region, 如果Region過小, 則進行merge. 這樣的狀況發生在大量資料被delete的狀況下, 對於進行merge table的要求就是要先disable, 以免在進行merge時資料出錯.

hbase split function (2)

圖片
hbase 0.94在進行表格分割(split)時, 依序進行下列動作:

hbase split function (1)

圖片
在hbase中, 表格被切隔成不同大小的Region, 不同的Region存放於不同的RegionServer上. Region的數量將影響LoadBalancer的運行結果, 同時考慮到每個RegionServer上有限的記憶體資源, 如何依據表格以及RegionServer的資源, 動態的切割表格成為Region, 是HBase規畫的重要問題。

hbase hbck 介紹 (1)

hbck (HBaseFsck) 是用來檢查hbase中群集一致性的工具, 其中, FSCK是file system consistency check的縮寫, hbase hbck會確認.META.表格的資訊, Region和RegionServer的對應關係, 以及HDFS中的硬碟資料狀態, 確保hbase中資料是一致的, 以功能而言, hbase hbck分成以下兩種主要功能: 修復Region和HDFS的對應關係(合併或是建立Region), 修復Region和META.表格的對應關係   The general repair strategy works in these steps.   1) Repair Table Integrity on HDFS. (merge or fabricate regions)   2) Repair Region Consistency with META and assignments

hbase中的資料儲存架構與格式 (2)

圖片
(問題)  hbase中資料如何儲存的? (2) HFile的資料格式? (方法) HFile是hbase中硬碟資料真實儲存的型態, 在hbase 0.94版本中, 使用的是HFile V2的格式, 不同於0.92版本(HFile V1)的格式, 擴展了資料的儲存欄位與編目的方式.

hbase中的資料儲存架構與格式 (1)

圖片
(問題)  hbase中資料如何儲存的? (1) 甚麼是Region, RegionServer ,Store, StoreFile以及HFile? (方法) 以下的文字是摘錄自 "HBase: The Definitive Guide"的文字和圖, 敘述hbase(0.92版)如何透過RegionSever進行資料儲存: The HRegionServer opens the region and creates a corresponding HRegion object. When the HRegion is opened it sets up a Store instance for each HColumnFamily for every table as defined by the user beforehand. Each Store instance can, in turn, have one or more StoreFile instances, which are lightweight wrappers around the actual storage file called HFile. A Store also has a MemStore, and the HRegionServer a shared HLog in-stance.