1. 程式人生 > >hbase 快速入門之---HFILE資料格式

hbase 快速入門之---HFILE資料格式


ØHFile檔案不定長,長度固定的塊只有兩個:TrailerFileInfo ØHFile寫到硬碟時,Trailer被寫到最後。 Trailer中指標指向其他資料塊的起始點。 ØFile Info中記錄了檔案的一些Meta資訊,例如:AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY ØData IndexMeta Index塊記錄了每個Data塊和Meta塊的起始點 ØData BlockHBase I/O的基本單元,為了提高效率,HRegionServer中有基於LRUBlock Cache機制
Ø每個Data Block的大小可以在建立一個Table的時候通過引數指定,大號的Block有利於順序Scan,小號Block利於隨機查詢 Ø每個Data Block除了開頭的Magic以外就是一個個KeyValue對拼接而成, Magic內容就是一些隨機數字,目的是防止資料損壞 HFile裡面的每個KeyValue對就是一個簡單的byte陣列。這個byte數組裡麵包含了很多項,並且有固定的結構。
ØKeyLengthValueLength:兩個固定的長度,分別代表KeyValue的長度 ØKey部分 Row Length是固定長度的數值,表示RowKey的長度,Row就是RowKey
Column Family Length是固定長度的數值,表示Family的長度,接著就是Column Family,再接著是Qualifier,然後是兩個固定長度的數值,表示Time StampKey Type(Put/Delete)Value部分沒有這麼複雜的結構,就是純粹的二進位制資料 HFile 中的資料塊大小預設為 64KB。如果訪問 HBase 資料庫的場景多為有序的訪問,那麼建議將該值設定的大一些。如果場景多為隨機訪問,那麼建議將該值設定的小一些。一般情況下,通過調整該值可以提高 HBase 的效能。