我想要预先拆分的HBase表,例如在5个地区,像这样的hbase(main):001:0> create 'table','info',SPLITS => ['1000','2000','3000','4000']
如果其中一个区域(例如,区域为1000 ~ 2000)满足拆分条件并且已经被拆分(假设拆分之前称为region1,拆分后称为region2)。现在有了写入了rowkey 1001的数据,那么它将被写入哪个区域,region1还是region2?
我知道在没有预拆分的情况下,当发生拆分时,数据将被写入新区域,但是预拆分是否也是这种情况?
我有这个问题的原因是,当完成预拆分,然后发生拆分时,区域会变得额外。我最初只编写了几个预先指定的区域,那么如何处理额外的区域?
发布于 2021-08-13 06:49:59
要在地域拆分后确定哪个地域持有密钥,需要检查地域的起始密钥和结束密钥。属于开始和结束关键字的关键字将从该区域可用。
echo "list_regions 'table'" | hbase shell -n
当一个区域取消拆分时,它将创建2个新区域,并在新区域激活后关闭旧区域。具有新拆分的区域将具有新的区域名称。
echo "split 'table', '500'" | hbase shell -n
echo "list_regions 'table'" | hbase shell -n https://stackoverflow.com/questions/68750648
复制相似问题