整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

9.7.1 Hadoop基准评测程序

hadoop 小红牛 10℃ 0评论

Hadoop自带若干基准评测程序,安装开销小、运行方便。基准评测程序被 打包为一个名为test.jar的文件,经无参数解压缩之后,就可以获取文件列 表和说明文档:

% hadoop jar $HADOOP_INSTALL/hadoop-*-test.jar

如果不指定参数,大多数基准测试程序都会显示具体用法。示例如下:

% hadoop jar $HADOOP_INSTALL/hadoop-*-test.jar TestDFSIO TestFDSIO.0.0.4
Usage: TestFDSIO -read | -write | -clean [-nnFiles N] [-fileSize MB] [-resFile resultFileName] [-bufferSize Bytes]

1.使用TestDFSIO来评测HDFS

TestDFSIO能够用于测试HDFS的I/O性能。它用一个MapReduce作业并 行地读或写文件。各个文件在独立的map任务上被读或写,map任务输出 一些针对刚刚处理完的文件的统计信息;reduce任务汇总这些统计信息,并产 生一份总结报告。

以下命令写10个文件,各文件的大小为1000 MB:

% hadoop jar $HADOOP_INSTALL/hadoop-*-test.jar TestDFSIO -write -nrFiles 10 -fileSize 1000

运行结束之后,结果被同时写到控制台和一个本地文件之中。注意,是以 添加的方式写到本地文件中,因而重新运行基准评测程序也不会丢失历史 记录:

% cat TestDFSIO_results.log
------ TestDFSIO-----  : write
Date & time : Sun Apr 12 07:14:09 EDT 2009 
Number of files : 10 
Total MBytes processed: 10000
Throughput mb/sec : 7.796340865378244 
Average 10 rate mb/sec: 7.8862199783325195 
10 rate std deviation: 0.9101254683525547
 Test exec time sec : 163.387

在默认情况下,文件被写到目录下的子目录。 可以通过设置test .build .data系统属性来更改目录(仍旧在目录)。

若想测试读操作,则使用-read参数。注意,待读的文件必须已经存在(已 通过TestDFSIO -write命令创建):

% hadoop jar $HADOOP_INSTALL/hadoop-*-test.jar TestDFSIO -read -nrFiles 10 -fileSize 1000

以下内容是实际测试结果:

-----TestDFSIO-----  : read
Date & time : Sun Apr 12 07:24:28 EDT 2009
Number of files : 10
Total MBytes processed: 10000
Throughput mb/sec : 80.25553361904304
Average 10 rate mb/sec: 98.6801528930664 
10 rate std deviation: 36.63507598174921
 Test exec time sec : 47.624

测试结束之后,可以使用-clean参数删除所有在HDFS上临时生成的文件:

% hadoop jar $HAD00P_INSTALL/hadoop-*-test.jar TestDFSIO -clean

2.使用Sort程序评测MapReduce

Hadoop有一个MapReduce程序能够对输入数据做部分排序。鉴于整个输入 数据集是通过shuffle传输的,Sort程序对于整个MapReduce系统的基准评 测很有帮助。整个测试含三个步骤:创建随机数据、执行排序和验证结果。

首先,使用RandomWriter来产生随机数。该程序运行一个MapReduce作
业,在各节点上分别运行10个map任务,每个 map任务大约产生1GB大 小的随机二进制数,且键和值的大小各不同。用户可以通过 test.
randomwriter . maps_per_host 和 test. randomwrite. bytes_per_map
两个属性来改变以上两个参数值。此外,还可修改键、值的取值范围等, 详见RandomWriter的说明。

以下命令演示如何调用RandomWriter(放在示例JAR文件中,而非测试 JAR文件中)以向random-data目录输出数据:

% hadoop jar $HADOOP_INSTALL/hadoop-*-examples.jar randomwriter random-data

接下来,运行Sort程序:

% hadoop jar $HADOOP_INSTALL/hadoop-*-examples.jar sort random-data sorted-data

用户会对Srot程序的总执行时间感兴趣。此外,通过Web界面来观察作业的执行过程更有意义,这样可以了 解作业在各个阶段的开销。在此基础上,可以练习如何调整系统参数(参见 5.6节对作业调优的讨论)。

最后,需要验证在sorted-data文件中的数据是否已经排好序了:

% hadoop jar $HAIX)OP_INSTALL/hadoop-*-test.jar testmapredsort -sortlnput ranckxn-data \ -sortOutput sorted-data

该命令运行SortValidator程序在排序前后的数据上执行一系列检査,以 验证排序结果是否正确。最后,向控制台报告以下输出结果:

SUCCESS! Validated the MapReduce framework's 'sort' successfully.

3.其他基准评测程序

Hadoop的基准评测程序有很多,以下几种最常用。

• MRBench(使用mrbench)会多次运行一个小型作业。与sort基准

不同,该基准的主要目的是检验小型作业能否快速响应。

•NNBench(使用nnbench)测试namenode硬件的加载过程

•Gridmix是一个基准评测程序套装。通过模拟一些真实常见的数据 访问模式,Gridmix能逼真地为一个集群的负载建模。用户可参阅 分发包中的文档来了解如何运行Gridmix,也可访问博客了解更多背景。

转载请注明:全栈大数据 » 9.7.1 Hadoop基准评测程序

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址