本文我们来分析一下hbase自带的测试工具——performanceEvaluation。该工具是hbase自带的性能压测工具,基本原因是是用多线程模拟多用户同时访问集群的情况。
运行hbase org.apache.hadoop.hbase.PerformanceEvaluation,可以看到关于performanceEvaluation的用法介绍,如下图中所示:
介绍一下关键的几个参数:
-nomapred,mo mapreduce,加入此参数表示采用本地多线程的方式去读写数据,默认不加,此时本地启动mapreduce任务方式去测试;
-table,待测试的标明;
-rows,在本地多线程读写的模式下,指定每个线程处理的数据行数;
-startRow,每个线程操作的起始数据key;
-compression,-blockEncoding,前者指明了压缩方式,默认是NONE,后者指定了block的encoding策略,默认也是none;
-writeToWAL,写入数据时的WLog落盘策略,包括SYNC_WAL和SKIP_WAL两种;
-multiGet,在RandomRead中,如果指定大于1,则一次返回多条数据,默认一次返回一条;
-inmemory,会将数据尽量放在内存中,默认是false,也即读操作是从磁盘返回,为了保证pe能够准确获取测量结果,建议保持为false;
-presplit和-splitPolicy,两者搭配使用,用于对测试表进行预切割;
-filterAll,这个参数我的理解是在测试scan功能时,加上此参数,则server端scan出来的结果不再返回给client端,用于单纯测试server端的性能;
performanceEvaluation提供了如下几种测试用例:
</