元数据性能测试

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

  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性能测试结果