hbase优化

1、内存

年轻代年轻代最大值

java -Xmx256M -Xms256m -XX:NewSize=xxm -XX:MaxNewSize=xxm

java -XX:+UseParNewGC // 使用并行年轻代垃圾回收策略

2、修改内存储的清理阀值

hbase.hregion.memstore.flush.size

3、内存储的容量

hbase.regionserver.global.memstore.size

4、启动压缩,需要确保所有的rs都安装了所需要的压缩类库,尤其注意lzo和snappy

$hbase>create 'ns1:t9',{NAME=>'cf1',COMPRESSION=>'snappy'}

5、关闭自动拆分

hbase.hregion.max.filesize=10G

6、热点区域,通过move将region移动到指定rs

7、预拆分

创建表时直接指定拆分范围

$hbase> create 'ns1:t10','cf1',SPLITS=>['10','20','30']

同一张表count,分区前是90s,分区后十几秒,性能提升明显

8、merge

merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'


客户端API优化手段

1、关闭自动清理

HTable.setAutoFlush(false);

HTable.flushCommit();

HTable.close();

2、设置scan的cache

scan.setCaching(1000);

3、限定column family(最好一个列族)

4、预分区,设置startkey 和endkey

5、设置filter

6、关闭WAL

put.setWriteToWAL(false);


配置优化

1、zk的超时设定

zookeeper.session.timeout=3分钟

2、设置处理线程

hbase.regionserver.handler.count=

3、设置hbase堆大小

[hbase-env.sh]

export HBASE_HEAPSIZE=1G

你可能感兴趣的:(hbase优化)