51Testing软件测试论坛

标题: Hadoop基准测试工具 [打印本页]

作者: 巴黎的灯光下    时间: 2019-6-18 10:59
标题: Hadoop基准测试工具


Hadoop基准测试工具

测试对于验证系统的正确性、分析系统的性能来说非常重要,但往往容易被我们所忽视。为了能对系统有更全面的了解、能找到系统的瓶颈所在、能对系统性能做更好的改进,打算先从测试入手,学习Hadoop几种主要的测试手段。本文将分成两部分:第一部分记录如何使用Hadoop自带的测试工具进行测试;第二部分记录Intel开放的Hadoop Benchmark Suit: HiBench的安装及使用。

1. Hadoop基准测试

Hadoop自带了几个基准测试,被打包在几个jar包中,如hadoop-test.jar和hadoop-examples.jar,在Hadoop环境中可以很方便地运行测试。本文测试使用的Hadoop版本是cloudera的hadoop-0.20.2-cdh3u3。

在测试前,先设置好环境变量:

  1. $ export $HADOOP_HOME=/home/hadoop/hadoop
  2. $ export $PATH=$PATH:$HADOOP_HOME/bin
复制代码

使用以下命令就可以调用jar包中的类:

  1. $ hadoop jar $HADOOP_HOME/xxx.jar
复制代码

(1). Hadoop Test

当不带参数调用hadoop-test-0.20.2-cdh3u3.jar时,会列出所有的测试程序:


  1. $ hadoop jar $HADOOP_HOME/hadoop-test-0.20.2-cdh3u3.jar
  2. An example program must be given as the first argument.
  3. Valid program names are:
  4.   DFSCIOTest: Distributed i/o benchmark of libhdfs.
  5.   DistributedFSCheck: Distributed checkup of the file system consistency.
  6.   MRReliabilityTest: A program that tests the reliability of the MR framework by injecting faults/failures
  7.   TestDFSIO: Distributed i/o benchmark.
  8.   dfsthroughput: measure hdfs throughput
  9.   filebench: Benchmark SequenceFile(Input|Output)Format (block,record compressed and uncompressed), Text(Input|Output)Format (compressed and uncompressed)
  10.   loadgen: Generic map/reduce load generator
  11.   mapredtest: A map/reduce test check.
  12.   minicluster: Single process HDFS and MR cluster.
  13.   mrbench: A map/reduce benchmark that can create many small jobs
  14.   nnbench: A benchmark that stresses the namenode.
  15.   testarrayfile: A test for flat files of binary key/value pairs.
  16.   testbigmapoutput: A map/reduce program that works on a very big non-splittable file and does identity map/reduce
  17.   testfilesystem: A test for FileSystem read/write.
  18.   testipc: A test for ipc.
  19.   testmapredsort: A map/reduce program that validates the map-reduce framework's sort.
  20.   testrpc: A test for rpc.
  21.   testsequencefile: A test for flat files of binary key value pairs.
  22.   testsequencefileinputformat: A test for sequence file input format.
  23.   testsetfile: A test for flat files of binary key/value pairs.
  24.   testtextinputformat: A test for text input format.
  25.   threadedmapbench: A map/reduce benchmark that compares the performance of maps with multiple spills over maps with 1 spill
复制代码

这些程序从多个角度对Hadoop进行测试,TestDFSIO、mrbench和nnbench是三个广泛被使用的测试。

TestDFSIO

TestDFSIO用于测试HDFS的IO性能,使用一个MapReduce作业来并发地执行读写操作,每个map任务用于读或写每个文件,map的输出用于收集与处理文件相关的统计信息,reduce用于累积统计信息,并产生summary。

以下例子会运行一个小作业50次:

  1. $ hadoop jar $HADOOP_HOME/hadoop-test-0.20.2-cdh3u3.jar mrbench -numRuns 50
复制代码

Hadoop Examples

Hadoop自带了一些例子,比如WordCount和TeraSort,这些例子在hadoop-examples-0.20.2-cdh3u3.jar中。执行以下命令会列出所有的示例程序:


TeraSort

一个完整的TeraSort测试需要按以下三步执行:

并不需要在每次测试时都生成输入数据,生成一次数据之后,每次测试可以跳过第一步。

TeraGen的用法如下:

  1. $ hadoop jar hadoop-*examples*.jar teragen <number of 100-byte rows> <output dir>
复制代码

以下命令运行TeraGen生成1GB的输入数据,并输出到目录/examples/terasort-input:

  1. $ hadoop jar $HADOOP_HOME/hadoop-examples-0.20.2-cdh3u3.jar teragen \
  2.     10000000 /examples/terasort-input
复制代码

TeraGen产生的数据每行的格式如下:

  1. <10 bytes key><10 bytes rowid><78 bytes filler>\r\n
复制代码

其中:

HiBench

HiBench是Intel开放的一个Hadoop Benchmark Suit,包含9个典型的Hadoop负载(Micro benchmarks、HDFS benchmarks、web search benchmarks、machine learning benchmarks和data analytics benchmarks),主页是: https://github.com/intel-hadoop/hibench

HiBench为大多数负载提供是否启用压缩的选项,默认的compression codec是zlib。

Micro Benchmarks:

HDFS Benchmarks:

Web Search Benchmarks:

Machine Learning Benchmarks:

Data Analytics Benchmarks:




作者: 梦想家    时间: 2019-6-18 13:30





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2