一、通过预分区的方式建表
在建表时对HBase进行region的预分区,这样就能避免热点,提高数据写入效率。比如,rowkey的前几位字符串都是从0001~0010的数字,这样就可以分成10个region,使用SPLISTS,如下:
create't1','f1',{SPLITS=>['0001','0002','0003','0004','0005','0006','0007','0008','0009']}
二、列族数量不应超过2个
一个StoreFile对应一个ColumnFamily,多个ColumnFamily那么就有多个StoreFile。由于不同的列族会共享region,所以有可能出现,一个列族A已经有1000万行,而另外一个B才100行。当一个要求region分割的时候,会导致100行的列族B会同样分布到多个region中,导致扫描列族B的性能低下。
三、 隆过滤器
减少特定访问模式下的查询时间,建议使用ROW模式。
NONE:不使用布隆过滤器
ROW:行级,行键使用布隆过滤器——其在额外空间开销和提升性能之间有很好平衡
ROWCOL:行加列级,列键也使用布隆过滤器,不建议开启。
BLOOMFILTER=>‘ROW’
四、BlockCache设置<