HBase資料表解析
這次主要分析一下Hbase的資料表

hbase
建表語句分析
我們分析下條語句,在hbase shell中,直接按create命令不帶引數,hbase會提示建表的語法。
create 'demo:user', {NAME => 'f1', VERSIONS => 5, COMPRESSION => 'SNAPPY',COMPRESSION_COMPACT=>'snappy','REPLICATION_SCOPE'=>1}
- 表名字叫做'demo:user'
- NAME 列族名字是 f1,記住建表一定要指定列族名
- VERSION 是Hbase的表儲存的資料版本數,預設儲存3個版本
- REPLICATION_SCOPE 值可以為0或者1,0代表不復制,1代表啟用複製
- COMPRESSION_COMPACT,COMPRESSION 是表的壓縮型別
Hbase提供了三種常用的壓縮型別,如下,並且官方給出的壓縮率如下:

image
Hbase資料儲存目錄解析
我們在搭建Hbase的時候需要在hbase-site.xml中指定其儲存目錄,Hbase在指定的目錄中構造資料資料

image

image
- .tmp 當對錶進行建立和刪除的時候會把表移動到.tmp目錄下,然後再進行表操作,他是一個臨時的資料交換目錄
- WALS 理解為儲存Hbase的操作日誌
- archive 管理表的歸檔,這個由一個定時任務定時處理,管理和維護hbase的資料
- corrupt 一般是損壞的資料
- data 儲存資料的核心目錄
- hbase.id 標識hbase程序
- hbase.version 表名的
- oldWALs 日誌已經被持久化之後,日誌就被移動到這個目錄下等待刪除
- data/default 目錄儲存的是當前Hbase內包含的的表資訊
- data/hbase 儲存元資料和名稱空間
Hbase的元資訊表
hbase的元資料表為'hbase:meta',儲存在ZooKeeper上面。它也是一張普通的hbase表。它的結構如下:
region是儲存資料的最基本單元
Key:
- table,key,time 三個部分的組合。因為Hbase根據rowkey排序,所有可用很快的找打對應的表
Values: 指向的是region server指向的region
- info:regioninfo 對於region的基本資訊儲存,平時基本上用不到
- info:server region伺服器的地址和埠,這樣就可以找到伺服器
- info:serverstartcode 資料校驗的時候才用得到的
裡面的值也是會進行變化的。RegionServer掛掉,它也會及時的更新,Hbase表相當於Hbase的第一級索引,是Hbase最重要的系統表。
參考
- ofollow,noindex">Hbase .META table
- Hbase 官方參考
- Hbase 儲存原理剖析