本文介绍元数据在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,使用方法如下。
[root@node1 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存储路径.默认是/becnhmarks/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。
