转载请标明来源:http://blackwing.iteye.com/blog/1791848
之前把一个region人工拆分成多个region,每个region的起始key是具体某个row,但后来发现,hbase是把byte[0]作为一个表的起始key。官方文档这样描述:
http://hbase.apache.org/book.html#arch.catalog
[quote]Notes on HRegionInfo: the empty key is used to denote table start and table end. A region with an empty start key is the first region in a table. If region has both an empty start and an empty end key, it's the only region in the table[/quote]
这样就能解释,为什么获得某个表的其实key时,看到的是第一个region的start key是空,最后一个region的end key也是空了。
这样自己写代码操作region分切时,需要注意。
之前把一个region人工拆分成多个region,每个region的起始key是具体某个row,但后来发现,hbase是把byte[0]作为一个表的起始key。官方文档这样描述:
http://hbase.apache.org/book.html#arch.catalog
[quote]Notes on HRegionInfo: the empty key is used to denote table start and table end. A region with an empty start key is the first region in a table. If region has both an empty start and an empty end key, it's the only region in the table[/quote]
这样就能解释,为什么获得某个表的其实key时,看到的是第一个region的start key是空,最后一个region的end key也是空了。
Pair<byte[][], byte[][]> keys = table.getStartEndKeys();
这样自己写代码操作region分切时,需要注意。