本节书摘来异步社区《Hadoop MapReduce实战手册》一书中的第2章,第2.2节,作者: 【美】Srinath Perera , Thilina Gunarathne 译者: 杨卓荦 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。
Hadoop MapReduce实战手册运行基准测试程序,可以很好地验证HDFS集群是否已如预期般正确设置并执行。DFSIO是一个Hadoop自带的基准测试,可以用来分析一个HDFS集群的I/O性能。该部分展示了如何使用DFSIO来对HDFS集群的读取和写入性能进行基准测试。
准备工作在运行这些基准程序之前,必须安装和部署HDFS和MapReduce。导出HADOOP_HOME环境变量,将其指向Hadoop安装根目录:
>export HADOOP_HOME = /../hadoop-1.0.4该基准测试程序在$HADOOP_HOME/hadoop-*test.jar文件中。
操作步骤下列步骤显示了如何运行写入性能基准测试。
在$HADOOP_HOME目录下执行以下命令来测试写入性能的基准程序。-nrFiles参数指定了文件数量,同时-fileSize参数指定了以MB为单位的文件大小。 >bin/hadoop jar $ HADOOP_HOME/hadoop-test- *.JAR TestDFSIO -write -nrFiles 5 -CfileSize 100 基准测试程序会将日志写入控制台,同时将日志追加到一个名为TestDFSIO_results.log的文件中。可以使用-resFile参数提供自定义的结果文件名。下列步骤显示了如何执行测试读性能的基准测试。
读性能基准测试采用步骤1中的写性能基准测试创建的文件。因此,写性能基准测试应该在运行读性能基准测试之前执行,并且写基准测试所创建的文件必须存储在HDFS上,以便读基准测试运行。执行下面的命令运行读基准测试。读基准测试也会将结果写入控制台,并将其结果追加到一个与写基准测试类似的日志文件。 >bin/ hadoop jar $ HADOOP_HOME/hadoop-test- *.jar TestDFSIO -read -nrFiles5 -CfileSize 100要清理这些基准测试生成的结果文件,可以使用以下命令:
>bin/hadoop jar $HADOOP_HOME hadoop-test-*.jar TestDFSIO –clean工作原理DFSIO实际是执行一个MapReduce作业,其中map任务并行读写文件,而reduce任务则被用来收集和归纳性能数据。
更多参考在运行这些基准测试时,同步观察监控系统,可以帮助你更轻松地识别瓶颈所在。