1然磷、內(nèi)存
年輕代年輕代最大值
java -Xmx256M -Xms256m -XX:NewSize=xxm -XX:MaxNewSize=xxm
java -XX:+UseParNewGC // 使用并行年輕代垃圾回收策略
2娜谊、修改內(nèi)存儲的清理閥值
hbase.hregion.memstore.flush.size
3府树、內(nèi)存儲的容量
hbase.regionserver.global.memstore.size
4容诬、啟動壓縮,需要確保所有的rs都安裝了所需要的壓縮類庫盲赊,尤其注意lzo和snappy
$hbase>create 'ns1:t9',{NAME=>'cf1',COMPRESSION=>'snappy'}
5坦胶、關(guān)閉自動拆分
hbase.hregion.max.filesize=10G
6、熱點(diǎn)區(qū)域赎败,通過move將region移動到指定rs
7秕衙、預(yù)拆分
創(chuàng)建表時直接指定拆分范圍
$hbase>?create 'ns1:t10','cf1',SPLITS=>['10','20','30']
同一張表count,分區(qū)前是90s僵刮,分區(qū)后十幾秒,性能提升明顯
8鹦牛、merge
merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'
客戶端API優(yōu)化手段
1搞糕、關(guān)閉自動清理
HTable.setAutoFlush(false);
HTable.flushCommit();
HTable.close();
2、設(shè)置scan的cache
scan.setCaching(1000);
3曼追、限定column family(最好一個列族)
4窍仰、預(yù)分區(qū),設(shè)置startkey 和endkey
5礼殊、設(shè)置filter
6驹吮、關(guān)閉WAL
put.setWriteToWAL(false);
配置優(yōu)化
1针史、zk的超時設(shè)定
zookeeper.session.timeout=3分鐘
2、設(shè)置處理線程
hbase.regionserver.handler.count=
3碟狞、設(shè)置hbase堆大小
[hbase-env.sh]
export HBASE_HEAPSIZE=1G