HBase优化策略
- 解决热点效应
HBase数据热点问题原因:
用户大量的读写请求访问HBase集群的一台或者某几台RegionServer,导致RegionServer负载压力激增,可能会引起RegionServer性能下降,更严重者导致服务挂掉;
- 预分区 在创建表时,不按照默认的策略,为表只创建一个Region,而是根据需要,为一张表创建多个Region,从而避免热点效应
- 预分区的依据 基于Rowkey进行预分区
- 语法:
3.1 create ‘t1’, ‘f1’, SPLITS => [‘10’, ‘20’, ‘30’, ‘40’]
3.2 create ‘t1’, ‘f1’, SPLITS_FILE => ‘splits.txt’
splits.txt
10
20
30
40
3.3 create ‘t2’, ‘f1’, {NUMREGIONS => 15, SPLITALGO => ‘HexStringSplit’}- 根本上解决热点问题需要注意如下几点
- 预分区
- rowkey设置 综上2者尽量解决热点问题。
- 提高检索效率
- rowkey 相对连续 那么检索效率一定高 (顺序查询 scan操作)
- 设置Memstore大小 , Block Cache大小 hbase-site.xml 设置
hbase.hregion.memstore.flus