查看Hbase表分区情况
scan 'hbase:meta'
t1,,1487821235337.353a385f28af52ed47e675f18242bbf8. column=info:regioninfo, timestamp=1487821236518, value={ENCODED => 353a385f28af52ed47e675f18242bbf8, NAME => 't1,,1487821235337.353a385f28af52ed47e675f18242bbf8.', START KEY => '', ENDKEY => ''} t1,,1487821235337.353a385f28af52ed47e675f18242bbf8. column=info:seqnumDuringOpen, timestamp=1488359119701, value=\x00\x00\x00\x00\x00\x00\x00\x14 t1,,1487821235337.353a385f28af52ed47e675f18242bbf8. column=info:server, timestamp=1488359119701, value=centos2:16020 t1,,1487821235337.353a385f28af52ed47e675f18242bbf8. column=info:serverstartcode, timestamp=1488359119701, value=1488359111761
完整的region name
t1,,1487821235337.353a385f28af52ed47e675f18242bbf8.
表空间:表名, 开始rowId, 时间戳, hashcode(MD5)
region切片
语法
split 'tableName'
split 'namespace:tableName'
split 'regionName' # format: 'tableName,startKey,id'
split 'tableName', 'splitKey'
split 'regionName', 'splitKey'
其中'splitKey'表示从哪一行开始切分
reqion切片合并
hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'
hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME', true //强制合并
其中'ENCODED_REGIONNAME'表示region Id中的hashcode,比如本文案例中的“353a385f28af52ed47e675f18242bbf8”
注意: 只能合并startkey endkey 相邻的region,不相邻的只能强制合并
Hbase数据查询过程:
1. 客户端首先连接zookeeper,查找表hbase:meta的位置。
2. 查询表hbase:meta, 根据每个region的start key 和 end key 找到特定的region,取得该region所在的server, 比如“column=info:server, timestamp=1488359119701, value=centos2:16020”
3. 到指定的server找到该region。
4. hbase:meta表中的信息会被缓存起来,便于下次查找。