hbase 杂说

    最近在看hbase,我们来看看官方给出一些建议:(其实官方很多都是只给建议,却并没有说为什么,对于这样的情况只能自己去做实验或者是工作中碰到去解决吧)

    1、regionServer上region的个数:官方给出的建议是20-200个region,但是下面又说

    如何粗略计算regionServer上region:有个公式,
    

HBase 0.98.x
((RS Xmx) * hbase.regionserver.global.memstore.size) / (hbase.hregion.memstore.flush.size * (# column families))+
HBase 0.94.x
((RS Xmx) * hbase.regionserver.global.memstore.upperLimit) / (hbase.hregion.memstore.flush.size * (# column families))+
    貌似hbase.regionserver.global.memstore.size和 hbase.regionserver.global.memstore.upperLimit默认值都是0.4,也就是说如果我RS的内存分配16G,其他都是默认值,只有一个列族,0.98版本的一个region个数有51个,为什么这么计算?其实这是一种极限情况,hbase.regionserver.global.memstore.upperLimit其实这个参数的作用是防止内存占用过大,当ReigonServer内所有region的memstores所占用内存总和达到heap的40%时,HBase会强制block所有的更新并flush这些region以释放所有memstore占用的内存。这个公式是假设memstore达到最大值了,为了不发生上面的情况。 同upperLimit,只不过lowerLimit在所有region的memstores所占用内存达到Heap的35%时,不flush所有的memstore。它会找一个memstore内存占用最大的region,做个别flush,此时写更新还是会被block。lowerLimit算是一个在所有region强制flush导致性能降低前的补救措施。在日志中,表现为 “** Flush thread woke up with memory above low water.”

    参数调整会影响读写,如果写的压力大导致经常超过这个阀值,则调小读缓存hfile.block.cache.size增大该阀值,或者Heap余量较多时,不修改读缓存大小。
如果在高压情况下,也没超过这个阀值,那么建议你适当调小这个阀值再做压测,确保触发次数不要太多,然后还有较多Heap余量的时候,调大hfile.block.cache.size提高读性能
    参数调整会影响读写,(以下是经验之谈吧)如果写的压力大导致经常超过这个阀值,则调小读缓存hfile.block.cache.size,增大该阀值,或者Heap余量较多时,不修改读缓存大小。

    如果在高压情况下,也没超过这个阀值,那么建议你适当调小这个阀值再做压测,确保触发次数不要太多,然后还有较多Heap余量的时候,调大hfile.block.cache.size提高读性能
    hfile.block.cache.size表示storefile的读缓存占用Heap的大小百分比,0.2表示20%。该值直接影响数据读的性能。hbase.regionserver.global.memstore.upperLimit和这个参数一个影响写,一个影响读,如果两值加起来超过80-90%,会有OOM的风险

    2、Maximum region size
    官方推荐maximum region size is 10-20Gb,5-10Gb is optimal.
    0.98版本后加入了一些优化机制,可以使得region size 更大


转载于:https://my.oschina.net/U74F1zkKW/blog/492529

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值