Hbase压力测试

时间:2022-06-14 15:10:25

PerformanceEvaluation是HBase自带的性能测试工具,该工具提供了顺序读写、随机读写、扫描等性能测试功能。本文简要介绍HBase PerformanceEvaluation的使用方法。

Hbase压力测试

准备工作

1HDFS正常启动:start-dfs.sh
2Mapreduce\\yarn正常启动: start-yarn.sh
3HBase正常启动: start-hbase.sh

运行

1、进入hbase bin目录:cd {mr}/hbase/bin;

2、输入hbase org.apache.hadoop.hbase.PerformanceEvaluation 查看PE帮助信息,如下图:
Hbase压力测试

写操作

1)  顺序写:sequentialWrite
例如,预分区100 regions,100线程并发,顺序写1亿条数据:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 --presplit=100 sequentialWrite 100

注意事项:
a.  hbase PE默认使用mapreduce作业进行读写扫描数据,如果使用多线程/客户端并发来代替mapreduce作业,需要加上选项 --nomapred

b.  设置每个客户端处理多少行记录,使用参数 --rows,例如 --rows=1000000,即每个线程/客户端处理1000000行记录;

c.  --presplit参数,只有在写数据时使用,读表时使用参数--presplit,会导致之前写的表数据被删除;

d.  最后一个参数100即为100个线程/客户端并发。

2)  随机写:randomWrite
例如,随机写1亿条数据:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 --presplit=100 randomWrite 100

读操作

1)  顺序读:sequentialRead
例如,顺序读1亿条数据:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 sequentialRead 100

2)  随机读:
例如,随机读1亿条数据:
hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=100000 randomRead 100

扫描操作

扫描:scan\\ scanRange10\\ scanRange100\\ scanRange1000\\scanRange10000

hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000000 scan 100

hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=100000 scanRange10 100

hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=10000 scanRange100 100

hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=1000 scanRange1000 100

hbase org.apache.hadoop.hbase.PerformanceEvaluation--nomapred --rows=100 scanRange10000 100

注意事项:
Hbase读\\扫描表数据,会优先读取内存数据,所以在写表操作结束后,可手动对表进行一次flush操作,以此清空内存中memstore数据;并且每次读\\扫描测试前,重启hbase,把缓存清掉。