Hbase压力测试
PerformanceEvaluation是HBase自带的性能测试工具,该工具提供了顺序读写、随机读写、扫描等性能测试功能。本文简要介绍HBase PerformanceEvaluation的使用方法。
准备工作
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帮助信息,如下图:
写操作
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,把缓存清掉。