HBase优化策略。
1.导致HBase性能下降的因素
2.HBase数据存储过程
3.HBase优化策略 - 常见服务端配置优化 - 常用优化策略(以实际需求为主) - Hbase的读写性能优化
4.常见服务端配置优化
| HBase properties | 简介 |
|---|---|
| hbase.regionserver.handler.count | rpc请求的线程数量,默认值是 10 |
| hbase.hregion.max.filesize | 当region的大小大于设定值后 hbase就会开始split |
| hbase.hregion.majorcompaction | major compaction的执行周期 |
| hbase.hstore.compaction.min | —个store里的storeFile总数超过该值,会触发默认的合并操作 |
| hbase.hstore.compaction.max | 一次最多合并多少个storeFile |
| hbase.hstore.blockingStoreFiles | 一个region中的Store(Coulmn Family)内有超过xx个storeFile时,则block所有的写请求进行compaction |
| hfile.block.cache.size | regionserver的block cache的内存大小限制 |
| hbase.hregion.memstore.flush.size | memstore超过该值将被flush |
| hbase.hregion.memstore.block.multiplier | 如果memstore的内存大小超过 flush.size * multiplier,会阻塞该memstore的写操作 |
5.常用优化策略
1).创建HBase表的时候会自动创建一个Region分区 2).创建HBase表的时候预先创建一些空的Regions - RowKey 优化 1).利用HBase默认排序特点,将一起访问的数据放到一起 2).防止热点问题,避免使用时序或者单调的递增递减等 - Column 优化 1).列族的名称和列的描述命名尽量简短 2).同一张表中ColumnFamily的数量不要超过3个 - Schema 优化 1).宽表:一种“列多行少”的设计 2).高表:一种“列少行多”的设计
6.HBase读写性能优化
写性能优化策略 1).同步批量提交or异步批量提交 2).WAL优化,是否必须,持久化等级
读性能优化策略 1).客户端:Scan缓存设置,批量获取。 2).服务端:BlockCache配置是否合理,HFile是否过多。 3).表结构设计是否合理