hbase存储结构及客户端访问hbase表的过程
要说明客户端访问/操作hbase表,先简要说明hbase表的存储结构。
Hbase最初有一个表,则一个表对应一个region,随着表增大,一个region会分为多个region,即一个表对应了多个region。Region是hbase存储的最小单位,不能分割,即一个region内的数据只能存在一个服务器,但是一个表的所有region可以分布在不同的server上(hregionserver)。如下图:
可见region分布分散,而记录table表的region分布信息的元数据存储在.META.中。这个表也会随着内容增加而分割为多个region,记录.META.的region的元数据存储在-ROOT-表中。最后由zookeeper记录-ROOT-表的位置信息。
所以,看出客户要访问hbase的某个表,要先通过zookeeper找到-ROOT-表,然后找到.META.表,最后找到table。如下图:
所以,我们要操作hbase的数据,第一步必须通过zookeeper。