1、blockcache 读性能
hfile.block.cache.size blockcache占用JVM的内存百分比,默认0.4
2、memstore 写性能
hbase.hregion.memstore.flush.size 到达此值就会flush落盘,默认128,可调256M 268435456
hbase.hregion.memstore.block.multiplier 默认是4 写入一个region的所有memstore总和到达hbase.hregion.memstore.flush.size * hbase.hregion.memstore.block.multiplier 阈值,就会flush
hbase.regionserver.global.memstore.size 默认0.4,即占用总JVM的内存百分比大小,若regionserver上所有的memstore到这个值,就会阻塞写入,强制flush
hbase.regionserver.global.memstore.size.lower.limit 默认0.95,表示到hbase.regionserver.global.memstore.size的百分比后,就会对最大的memstore 进行flush
hbase.regionserver.optionalcacheflushinterval memstore强制刷写时间默认1H
3、compaction 合并性能
hbase.hstore.compactionThreshold store中文件到这个数量就进行合并,默认是3,一般10
hbase.hstore.compaction.max 最对可参与minor的文件数,默认是10
hbase.regionserver.thread.compaction.throttle 区分大小文件,用来判定执行large或者small,默认2G,生产要放大
hbase.regionserver.thread.compaction.large 大文件的执行线程数 10
hbase.regionserver.thread.compaction.small 小文件的执行线程数 20
线程数可以配置后不用重启regionserver,在hbase shell中执行 update_all_config
hbase.hstore.blockingStoreFiles 一个store中文件数超过这个值,则所有更新阻塞 30
hbase.hregion.majorcompaction major合并周期。一般都是0.即禁用
4、hlog
hbase.regionserver.maxlogs ##wal文件超过该值,就会强制flush。默认32
实际改动调整关于调参数
1、调整hbase JVM内存大小
原因
hfile.block.cache.size 0.4 默认 目前0.3
hbase.regionserver.global.memstore.size 目前是0.5
读写都需要内存,使用的比例共占0.8,
2、调整
hbase.hregion.memstore.flush.size 默认128M,可配置256M 268435456
可以调整,需要实践
hbase.regionserver.thread.compaction.large 10
hbase.regionserver.thread.compaction.small 20