hbase预分区

Posted 18800105616a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hbase预分区相关的知识,希望对你有一定的参考价值。

技术图片

 

 

 

hbase在创建表的时候,一开始只有一个Region,当数据量越来越大时,此region不能承受数据量,就会进行split

这种方式有两种缺点:1.数据往一个region上写,会有写热点问题

                                     2.region split会消耗宝贵的集群I/O资源

所以引入了预分区概念。

https://blog.csdn.net/javajxz008/article/details/51913471

 

rowkey的设计:一条数据存储于哪个分区,取决于rowkey处于哪个预分区的区间内,设计rowkey的目的,就是让数据均匀的分布于所有的region中,在一定程度上防止数据倾斜。

rowkey的设计原则:

(1)唯一性原则

(2)长度原则(不能太长,不能太短)(满足查询条件下越短越好)(60-80字节,最大值是64k)

(3)散列原则(rowkey均匀分配)

 

1.生成随机数,hash,散列值

2.字符串反转(20170524000001-》10000042507102,20170524000002-》20000042507102,散列)

3.字符串拼接(20170524000001-》20170524000001_a12e,20170524000001-》20170524000001_93i7)

以上是关于hbase预分区的主要内容,如果未能解决你的问题,请参考以下文章

hbase建表create高级属性 //hbase 表预分区也就是手动分区 这个很重要

HBase预分区

大数据之Hbase:HBase优化

HBase表的预分区

hbase 预分区

HBase Rowkey的散列与预分区设计