我想预先拆分HBase表,例如在5个区域上,如hbase(main):001:0> create 'table','info',SPLITS => ['1000','2000','3000','4000']
如果其中一个区域(如区域为1000 ~ 2000)满足拆分条件,并且已经被拆分(假设拆分前称为区域1,拆分后称为区域2),那么现在有一个写入了rowkey为1001的数据,那么该写入哪个区域,区域1还是区域2?
我知道,如果不进行预拆分,则在进行拆分时,数据将写入新区域,但预拆分也是这样吗?
我遇到这个问题的原因是,当预拆分完成,然后拆分发生时,区域会变成额外的。我最初只编写了几个预先指定的区域,那么如何处理额外的区域呢?
1条答案
按热度按时间33qvvth11#
要确定区域拆分后哪个区域持有密钥,您需要检查区域的起始密钥和结束密钥。福尔斯起始密钥和结束密钥下的密钥将可从该区域获得。
echo "list_regions 'table'" | hbase shell -n
当一个区域取消拆分时,它将创建2个新区域,并在新区域激活后关闭旧区域。具有新拆分的区域将具有新的区域名称。