本文介绍元数据在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性能测试

  1. 使用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
  2. 执行如下命令查看在文件存储HDFS版上面创建的文件数量及大小。
    ./hadoop fs -count -q -h /benchmarks/NNBench/io_data
  3. 查看生成的统计信息。

    统计信息在当前测试目录下的NNBench_results.log文件中。

    TPS表示每秒处理的事务个数,测试结果为1987。

    create_write性能测试结果

open_read性能测试

  1. 使用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
  2. 查看生成的统计信息。

    统计信息在当前测试目录下的NNBench_results.log文件中。

    TPS表示每秒处理的事务个数,测试结果为7174。

    open_read性能测试结果

rename性能测试

  1. 使用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
  2. 查看生成的统计信息。

    统计信息在当前测试目录下的NNBench_results.log文件中。

    TPS表示每秒处理的事务个数,测试结果为3469。

    rename性能测试结果

delete性能测试

  1. 使用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
  2. 查看生成的统计信息。

    统计信息在当前测试目录下的NNBench_results.log文件中。

    TPS表示每秒处理的事务个数,测试结果为10887。

    delete性能测试结果