注:部分内容源自网络摘录,部分内容源自个人总结归纳,摘录部分会在最后附上摘录网址,但难免有部分遗漏,如有问题,请与本人联系,谢谢!
在HBase中,表中所有行都是按照row key的字典序排列的,表在行的方向上分割为多个region。
region是按照大小分割的,每个表一开始只有一个region,随着数据不断插入表中,region不断增加,当增大到一个阀值的时候,region就会等分为两个新的region。当table中的行不断增多时,就会有越来越多的region。
region是Hbase中分布式存储和负载均衡的最小单元,最小单元就意味着不同的region可以分布在不同的region server上。但是一个region是不会拆分到多个server上的。
region虽然是分布式存储的最小单元,但并不是存储的最小单元。事实上,region由一个或者多个store组成,每个store保存一个columns family。
一个region由[startkey,endkey)表示。
分析HRegion源代码,可以看到HRegion提供了一个方法getStartKey(),用于获取该region起始row key,代码如下:
/** @return start key for region *//**
* 返回region的起始row key
*/
public byte [] getStartKey() {
return this.getRegionInfo().getStartKey();
}
引用:
http://blog.csdn.net/tycoon1988/article/details/38346379