赞
踩
HBase提供了两张特殊的目录表-ROOT-和META表,-ROOT-表用来查询所有的META表中region位置。HBase设计中只有一个root region即root region从不进行切分,从而保证类似于B+树结构的三层查找结构:
第1层:zookeeper中包含root region位置信息的节点,如-ROOT-表在哪台regionserver上
第2层:从-ROOT-表中查找对应的meta region位置即.META.表所在位置
第3层:从META表中查找用户表对应region位置
目录表中的行健由region表名、起始行和ID(通常是以毫秒表示的当前时间)连接而成。HBase0.90.0版本开始,主键上有另一个散列值附加在后面,目前这个附加部分只用在用户表的region中。
注意:
1.root region永远不会被split,保证了最多需要三次跳转,就能定位到任意region
2.META表每行保存一个region的位置信息,row key采用表名+表的最后一行编码而成
3.为了加快访问,META表的全部region都保存在内存中
4.client会将查询过的位置信息保存缓存起来,缓存不会主动失效,因此如果client上的缓存全部失效,则需要进行最多6次网络来回,才能定位到正确的region(其中三次用来发现缓存失效,另外三次用来获取位置信息)
关于
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。