Hbase Region的拆分和合并

Region拆分合并
摘要由CSDN通过智能技术生成

Split拆分

说明:
Split entire table or pass a region to split individual region.  With the 
second parameter, you can specify an explicit split key for the region.  
Examples:
split 'tableName'
split 'namespace:tableName'
split 'regionName' # format: 'tableName,startKey,id'
split 'tableName', 'splitKey'
split 'regionName', 'splitKey'

首先执行scan ‘hbase:meta’查看元数据,共有三条记录

hbase(main):001:0> scan 'hbase:meta'
ROW  COLUMN+CELL 
 hbase:namespace,,15 column=info:regioninfo, timestamp=1500279250104, value={
 00279203600.844a078 ENCODED => 844a078aa357b6e4bf848b42ce46a713, NAME => 'hb
 aa357b6e4bf848b42ce ase:namespace,,1500279203600.844a078aa357b6e4bf848b42ce4
 46a713. 6a713.', STARTKEY => '', ENDKEY => ''}  
 hbase:namespace,,15 column=info:seqnumDuringOpen, timestamp=1500279210909, v
 00279203600.844a078 alue=\x00\x00\x00\x00\x00\x00\x00\x02   
 aa357b6e4bf848b42ce 
 46a713. 
 hbase:namespace,,15 column=info:server, timestamp=1500279210909, value=maste
 00279203600.844a078 r:16020 
 aa357b6e4bf848b42ce 
 46a713. 
 hbase:namespace,,15 column=info:serverstartcode, timestamp=1500279210909, va
 00279203600.844a078 lue=1500279162649   
 aa357b6e4bf848b42ce 
 46a713. 
 test,,1500293557739 column=info:regioninfo, timestamp=1500293644890, value={
 .e686fd30012f1c4cb6 ENCODED => e686fd30012f1c4cb6d78a241d911202, NAME => 'te
 d78a241d911202. st,,1500293557739.e686fd30012f1c4cb6d78a241d911202.', ST
 ARTKEY => '', ENDKEY => ''} 
 test,,1500293557739 column=info:seqnumDuringOpen, timestamp=1500293644890, v
 .e686fd30012f1c4cb6 alue=\x00\x00\x00\x00\x00\x00\x00\x02   
 d78a241d911202. 
 test,,1500293557739 column=info:server, timestamp=1500293644890, value=slave
 .e686fd30012f1c4cb6 1:16020 
 d78a241d911202. 
 test,,1500293557739 column=info:serverstartcode, timestamp=1500293644890, va
 .e686fd30012f1c4cb6 lue=1500279205588   
 d78a241d911202. 
 test1,,150028521182 column=info:regioninfo, timestamp=1500288301234, value={
 0.ee4ccd1877cf2d579 ENCODED => ee4ccd1877cf2d5793b41f62a1552257, NAME => 'te
 3b41f62a1552257.st1,,1500285211820.ee4ccd1877cf2d5793b41f62a1552257.', S
 TARTKEY => '', ENDKEY => ''}
 test1,,150028521182 column=info:seqnumDu
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值