Hbase-原理-region拆分

Hbase-原理-region拆分

为什么要要拆分region
防止一个region server机器中存储的数据过多 引起并发热点的问题

会将一个大表分成不同的region交给不同的region server,形成了分布式数据库,减少了我们某一个机器的负载压力

拆分策略

  1. 默认的拆分策略(大小)
    · 当region的大小达到一定大小的时候会被拆分
    · 当hbase表在regionserver上的region,如果region的大小到达一个阈值,这个region将会分为两个。
    · 计算公式为:
    Min{
    1^32128M 256M
    2^32128M 2G
    3^32128M 6.75G
    10G 10G
    (表在一个regionserver上region的数量的立方) *2(the region memstore flush size),
    hbase.hregion.max.filesize(默认是10GB)
    }
    如果默认值情况下,一个表在一个regionserver上split的阈值是:
    256MB(第一次split),2GB(第二次),6.75GB(第三次),10GB(第四次),10GB… 10GB
  1. keyPrefixRegionSplitPolicy(自定义)
    这种拆分是在原来的拆分基础上 ,增加了拆分点(splitPoint,拆分点就是Region被拆分时候的rowkey)的定义,保证有相同前缀的rowkey不会被拆分到不同的Region上
    参数是 keyPrefixRegionSplitPolicy.prefix_length rowkey:前缀长度
  1. DelimitedKeyPrefixRegionSplitPolicy
    和上一种查分策略一致 , 上一种是按照key的固定长度拆分的 , 这种按照的是分割符
    DelimitedKeyPrefixRegionSplitPolicy.delimiter参分割符
  1. region预拆分
    row设计的一个关键点是查询维度
    (在建表的时候根据具体的查询业务 设计rowkey 预拆分)
    在默认的拆分策略中 ,region的大小达到一定的阈值以后才会进行拆分,并且拆分的region在同一个regionserver中 ,只有达到负载均衡的时机时才会进行region重分配!并且开始如果有大量的数据进行插入操作,那么并发就会集中在单个RS中, 形成热点问题,所以如果有并发插入的时候尽量避免热点问题 ,应当预划分 Region的rowkeyRange范围 ,在建表的时候就指定预range范围 .
    hbase> create ‘t1’, ‘f1’, SPLITS => [‘10’, ‘20’, ‘30’, ‘40’]
  1. 手动强制拆分
    没有预期到的查询热点数据 需要手动的拆分
    如果随着数据在执行的过程中出现部分region的热点问题, 那么这个region的数据必然会很大,这个时候需要我们手动的强制拆分region .
    建议
    1 预拆分初始化的数据
    2 后续采取自动拆让Hbase来管理region的拆分

Hbase 表的手动强制拆分 (shell)

  • 未拆分前表的样子

list_regions 'tb_stu'在这里插入图片描述

  • 拆分后
split 'a338a854bfcdd315f4e28c0cb0ac0d11', 'rk001'

在这里插入图片描述

  • 在HDFS中查看
    在这里插入图片描述

拆分完,原来的region Name 会保留一段时间,一段时间后原来的region Name会被删除,只保留拆分后的region Name

在这里插入图片描述

移动拆分后的一个region

  • 将region Name为aaa7d4f6003b2f6fc5ca88e78daf2ff5的region移动到linux03机器中去
move 'aaa7d4f6003b2f6fc5ca88e78daf2ff5','linux03,16020,1606458591086'

可以跟上图对比

注意:手动拆分的过程中HDFS会生成新的region文件夹,文件夹中会有hfile文件;所以拆分的过程中会消耗大量的资源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值