微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hbase的读写,合并调优

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐