预分区
初次接触HBase的客户,在创建HBase表的时候,不指分区的数目,另外就是rowkey设计不合理,导致热点。
最为常见的建表语句为:
create ‘t3’,{NAME => ‘f1’,COMPRESSION => ‘snappy’ }, { NUMREGIONS => 50, SPLITALGO => ‘HexStringSplit’ }
- 其中 NUMREGIONS 为 region的个数,一般按每个region 6~8GB左右来计算region数量,集群规模大,region数量可以适当取大一些
SPLITALGO 为 rowkey分割的算法:Hbase自带了三种pre-split的算法,分别是 HexStringSplit、DecimalStringSplit 和 UniformSplit。
各种Split算法适用场景:
- HexStringSplit: rowkey是十六进制的字符串作为前缀的
- DecimalStringSplit: rowkey是10进制数字字符串作为前缀的
- UniformSplit: rowkey前缀完全随机
关于rowkey的设计可以参考:RowKey设计
- COMPRESSION压缩算法,参考:数据压缩与编码
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论