什么是预分区?
Hbase的预分区就是横向切割,也就是切割region,相当于关系型数据库中的分区。Hbase刚创建的时候,只有一个region,当后面region过大超过10个G,就会自动将表横向切割,表在切割的时候会大量消耗hbase的资源,频繁的切割分区对hbase的性能影响很大,因为底层都是调用的hadoop,每次切割都会重新计算hash进行重新分区,所有数据全部打散,再将hash一直一样的重新组合。所以在建表之前需要提前计算好数据容量,提前做好预分区。
为什么要预分区?
减少region split带来的资源消耗,从而提升hbase的性能
如何预分区?
通过生成16进制序列进行预分区
例子: create 'mydemo:test','base',{NUMRIGION=>3,SPLITALGO=>'HexStringSplit'} 表示根据16进制序列分三个区。