Hbase region切片 reqion切片合并操作

查看Hbase表分区情况

scan 'hbase:meta'

 t1,,1487821235337.353a385f28af52ed47e675f18242bbf8.       column=info:regioninfo, timestamp=1487821236518, value={ENCODED => 353a385f28af52ed47e675f18242bbf8, NAME => 't1,,1487821235337.353a385f28af52ed47e675f18242bbf8.', START
                                                           KEY => '', ENDKEY => ''}
 t1,,1487821235337.353a385f28af52ed47e675f18242bbf8.       column=info:seqnumDuringOpen, timestamp=1488359119701, value=\x00\x00\x00\x00\x00\x00\x00\x14
 t1,,1487821235337.353a385f28af52ed47e675f18242bbf8.       column=info:server, timestamp=1488359119701, value=centos2:16020
 t1,,1487821235337.353a385f28af52ed47e675f18242bbf8.       column=info:serverstartcode, timestamp=1488359119701, value=1488359111761

完整的region name 

t1,,1487821235337.353a385f28af52ed47e675f18242bbf8. 

表空间:表名, 开始rowId, 时间戳, hashcode(MD5)

 

region切片

语法

    split 'tableName'

    split 'namespace:tableName'

    split 'regionName' # format: 'tableName,startKey,id'

    split 'tableName', 'splitKey'

    split 'regionName', 'splitKey'

 

其中'splitKey'表示从哪一行开始切分

 

 

reqion切片合并

  hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'

  hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME', true     //强制合并

其中'ENCODED_REGIONNAME'表示region Id中的hashcode,比如本文案例中的“353a385f28af52ed47e675f18242bbf8

 

注意: 只能合并startkey endkey 相邻的region,不相邻的只能强制合并

 

 

Hbase数据查询过程

1. 客户端首先连接zookeeper,查找表hbase:meta的位置。

2. 查询表hbase:meta, 根据每个region的start key 和 end key 找到特定的region,取得该region所在的server, 比如“column=info:server, timestamp=1488359119701, value=centos2:16020

3. 到指定的server找到该region。

4. hbase:meta表中的信息会被缓存起来,便于下次查找。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HBase中的数据存储在Region中,每个Region负责一段连续的key范围。当一个Region的数据量过大或者key范围过于分散时,需要进行Region的拆分或合并操作。 ## Region拆分 Region拆分可以将一个过大的Region分割成两个或多个相对较小的Region,以便更好地管理和利用硬件资源。 ### 触发条件 当一个Region的数据量超过了hbase.hregion.max.filesize(默认为1GB)或者key范围过于分散时,会触发Region拆分操作。 ### 操作过程 1. HBase会在Region拆分点(split point)处选择一个新的Region作为拆分后的Region之一,同时将原有Region的数据分配到拆分后的两个Region中。 2. HBase会将拆分点及其前面的数据都分配给新的Region,将拆分点后面的数据留在原有的Region中。 3. HBase会将拆分点及其前面的数据范围作为新Region的key范围,将原有Region的key范围修改为拆分点后面的数据范围。 ### 操作示例 假设有一个Region的key范围为[a,c),数据量为1.5GB,超过了hbase.hregion.max.filesize,需要进行拆分操作。 1. HBase会选择一个拆分点(split point),例如选择b作为拆分点。 2. HBase会创建一个新的Region,key范围为[b,c),同时将[a,b)范围内的数据分配给新的Region,将[c,∞)范围内的数据留在原有的Region中。 3. HBase会将[a,b)范围作为原有Region的key范围,将[b,c)范围作为新Region的key范围。 ## Region合并 Region合并可以将相邻的两个Region合并为一个Region,以便更好地利用硬件资源。 ### 触发条件 当相邻的两个Region的数据总量小于hbase.hregion.max.filesize(默认为1GB)且key范围连续时,会触发Region合并操作。 ### 操作过程 1. HBase会选择相邻的两个Region进行合并,将它们的数据合并到一个新的Region中。 2. HBase会将两个Region的key范围合并为一个key范围。 ### 操作示例 假设有两个相邻的Region,key范围分别为[a,b)和[b,c),数据总量小于hbase.hregion.max.filesize,需要进行合并操作。 1. HBase会将两个Region的数据合并到一个新的Region中,key范围为[a,c)。 2. HBase会将两个Region的key范围合并为[a,c)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值