首页 > 大数据 > Hadoop > Hbase性能测试2及预分区
上次通过Hbase自带测试工具,对比不同客户端数量及数据量的插入性能, 由于上次测试对表没有预分区,所以补一个预分区测试,对比一下在分区和不分区的情况下,有什么区别。
hbase的线性扩展得益于多region同时工作,region越多,性能相比肯定越好,请求发到master之后,由master选取相关region server给客户端,之后就是客户端和region server直接通信,Master的工作相比少很多,负载也不会很大,这是HBASE线性扩展的根本。 但是前提是你的rowkey能随机同时随机分发到多台region server,否者HBASE底层提供负载均衡就白搭了。 预先分区的好处在于2个方面, 减少分裂,另外就是负载均衡,因为预先分区了,每个key落入不同的region 自然就负载均衡了。
测试命令:
time hbase org.apache.Hadoop.hbase.PerformanceEvaluation --rows=1000000 sequentialWrite 10
预先分区表:
create 'TestTable',{SPLITS_FILE => 'split.txt'}, {NAME => 'info'}
预先分区测试:
无预先分区测试:
Row count=10000000
File Input Format Counters
Bytes Read=455815
File Output Format Counters
Bytes Written=1385
real 2m22.463s
user 0m20.386s
sys 0m2.168s
从上面数据可以看到,预分区比不分区要快将近1分钟,为了保证测试的准确性,每个测试我基本跑了3次。
使用任何数据库,不管是DBRMS还是NO-SQL,我们都尽量要避免其软肋,每个数据库都有其实现原理,避开弱点,减少问题出现的概率。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17036462/viewspace-2141521/ ,如需转载,请注明出处,否则将追究法律责任。