本文介绍元数据在create_write、open_read、rename和delete等操作上的性能测试方法。
注意事项
在进行open_read、rename、delete测试之前要确保文件存储 HDFS 版上已存在待测数据。如果不存在待测数据,请先使用create_open创建待测数据。
测试环境
配置名称 | 配置说明 |
计算VM配置 | CPU核数:4核 |
内存:16 GB | |
机器数量:6台 | |
网络带宽:1.5 Gbps | |
文件存储 HDFS 版配置 | 实例大小:10 TB |
吞吐限速:1000 MB/s | |
软件配置 | Apache Hadoop:Hadoop 2.7.6 |
测试工具
NNbench是Hadoop系统自带的基准测试组件,NNbench用于测试元数据操作的性能。
NNbench的jar包位于${HADOOP_HOME}/share/hadoop/mapreduce目录下,${HADOOP_HOME}为测试机器中的Hadoop 安装目录,NNbench的jar包名为hadoop-mapreduce-client-jobclient-x.x.x-tests.jar,使用方法如下。
本文所有命令均在${HADOOP_HOME}/bin目录下执行。
执行命令,查看使用方式
./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar nnbench
使用方式
Usage: nnbench <options> Options: -operation <可用操作是create_write open_read rename delete.必选项> -maps <map数量.默认值为1。非必选项> -reduces <reduce数量.默认值为1.非必选项> -blockSize <块大小(以字节为单位).默认值为1.非必选项> -bytesToWrite <要写入的字节数.默认值为0.非必选项> -bytesPerChecksum <文件的每个校验和的字节数.默认值为1.非必选项> -numberOfFiles <要创建的文件数.默认值为1.非必选项> -baseDir <DFS存储路径.默认是/benchmark/NNBench.非必选项> -readFileAfterOpen <true或false.如果为true,则读取文件并报告平均读取时间.默认为false.非必选项>
create_write性能测试
使用20个Map,10个Reduce的MapReduce作业,创建1000个文件。
./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar nnbench -maps 20 -reduces 10 -numberOfFiles 1000 -operation create_write
执行如下命令查看在文件存储 HDFS 版上面创建的文件数量及大小。
./hadoop fs -count -q -h /benchmarks/NNBench/io_data
查看生成的统计信息。
统计信息在当前测试目录下的NNBench_results.log文件中。
TPS表示每秒处理的事务个数,测试结果为1987。
open_read性能测试
使用20个Map、10个Reduce的MapReduce作业打开1000个文件。
./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar nnbench -maps 20 -reduces 10 -numberOfFiles 1000 -operation open_read
查看生成的统计信息。
统计信息在当前测试目录下的NNBench_results.log文件中。
TPS表示每秒处理的事务个数,测试结果为7174。
rename性能测试
使用20个Map,10个Reduce的MapReduce作业来重命名1000个文件。
./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar nnbench -maps 20 -reduces 10 -numberOfFiles 1000 -operation rename
查看生成的统计信息。
统计信息在当前测试目录下的NNBench_results.log文件中。
TPS表示每秒处理的事务个数,测试结果为3469。
delete性能测试
使用20个Map,10个Reduce的MapReduce作业来删除1000个文件。
./hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.6-tests.jar nnbench -maps 20 -reduces 10 -numberOfFiles 1000 -operation delete
查看生成的统计信息。
统计信息在当前测试目录下的NNBench_results.log文件中。
TPS表示每秒处理的事务个数,测试结果为10887。