hbase性能调优:插入,查询
1,
hbase.hregion.max.filesize不宜过大或过小,256MB或许是一个更理想的经验参数。对于离线型的应用,调整为128MB会更加合适一些,而在线应用除非对split机制进行改造,否则不应该低于256MB
原来10G改成100G
2,
hbase.regionserver.handler.count
RegionServer端开启的RPC监听器实例个数,也即RegionServer能够处理的IO请求线程数。默认是10.
改成150. 此参数与内存息息相关。该值设置的时候,以监控内存为主要参考。
对于 单次请求内存消耗较高的Big PUT场景(大容量单次PUT或设置了较大cache的scan,均属于Big PUT)或ReigonServer的内存比较紧张的场景,可以设置的相对较小。
对于 单次请求内存消耗低,TPS(TransactionPerSecond,每秒事务处理量)要求非常高的场景,可以设置的相对大些。
2M改8M,10改150(建议100~200之间)
3,
hbase.hstore.blockingStoreFiles(减少阻止写入)
(
HStore的storeFile的文件数大于配置值,则在flushmemstore前先进行split或者compact,除非超过hbase.hstore.blockingWaitTime配置的时间,默认为7,可调大,比如:100,避免memstore不及时flush,当写入量大时,触发memstore的block,从而阻塞写操作。
)
默认7,原来10改成:2000
4,
hbase.regionserver.global.memstore.upperLimit
第一个0.4改成0.45,第二个0.35改成0.4(测试改,生产没有改)
5,
hbase.regionserver.lease.period, hbase.client.scanner.timeout.period
改成15分钟
6 heapsize
都该成CDH5.11,默认参数
7 启动时 HBase Region Server 的连接偏差
3分钟改成10分钟
//20亿是测试调优
hbase.hstore.compaction.max=30
hbase.hregion.memstore.block.multiplier=8
hbase.client.write.buffer=8M
CDH的hbase配置中没有,在代码的conf.set(“”,“”)中添加
hbase.hstore.flusher.count=30
hbase.hstore.compaction.kv.max=50
hbase.regionserver.region.split.policy=org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
CDH的hbase配置文件
hbase-default.xml
hdfs 调优 部分
1,HADOOP_NAMENODE_OPTS=-Xms4294967296 -Xmx4294967296
2,交换内存警告从任何该成从不
yarn 调优部分
yarn.nodemanager.resource.memory-mb
container的最小值要大于等于80%的那个最小值