预分region解决热点问题(面试题)

一、题目:如何解决hbase中遇到的热点问题?

1、问题引入

        在默认的拆分策略中 ,region的大小达到一定的阈值以后才会进行拆分,并且拆分的region在同一个regionserver中 ,只有达到负载均衡的时机时才会进行region重分配!并且开始如果有大量的数据进行插入操作,那么并发就会集中在单个region中, 形成热点问题。

2、解决方案

如果有并发插入的时候尽量避免热点问题 ,应当预划分 Region的rowkeyRange范围 ,在建表的时候就指定预region范围(在建表的时候根据具体的查询业务,设计rowkey的预拆分)

3、问题模拟与解决 (命令)

3.1 创建预拆分表

create 'tb_split','cf',SPLITS => ['e','h','l','r']

3.2 查看region信息

list_regions 'tb_split'

3.3 添加数据

put 'tb_split','c001','cf:name','first'                    
put 'tb_split','f001','cf:name','second'
put 'tb_split','z001','cf:name','last'

3.4 将内存的数据刷到表中,观察每个region中的数据分布

flush 'tb_split'

此时我们查询'second',就应该点击上图中最后region中去找数据

点击之后找到存放列簇数据的Store Files,以此在hdfs中找到真实数据的存放路径

 

 

在命令行查看数据: 

与我们的猜想吻合,至此,模拟预拆分结束...

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值