HBase PE随机读请求不均匀问题

本文讲述了作者在使用HBasePE进行压测时,如何发现并解决RandomRead场景下读请求集中在少数region的问题。通过调整命令行参数--size,确保请求分布均匀,从而提升性能测试效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近使用HBase PE工具对HBase进行压测,RandomRead场景测试过程中,发现读请求分布非常不均匀,全部落在前几个region上。

百度发现很多小伙伴也遇到类似问题,建议使用--size代替--rows,经测试并不生效。 

排查代码发现,get请求构造的时候是  

random.nextInt(Integer.MAX_VALUE) % totalRows

可以看出 get请求收到 totalRows 的限制,而totalRows 就是--rows指定的数量。 如果命令行指定--rows,那他就是--rows指定的rowkey之间的数据,get请求必然会落在前几个region上,导致负载不均衡,性能测试效果不佳。 效果如图:

 最终,在命令中再添加一个--size参数即可。该参数值与表总行数(总大小;根据数据生成时指定方式而定)保持一致即可。

hbase pe --nomapred --rows=100000 --size=10 --table=Test1 randomRead 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值