多节点集群性能测试手记
测试时间:2010年7月18日 测试地点:主楼B1-601测试人:王振飞
测试环境:
12个节点,每个节点的物理机配置为双核CPU,主频2.60Hz,
内存3G,硬盘250G,网络带宽100Mbps以太网,虚拟机VMware workstation 7.1.0 build-261024,平台RHEL5.5,内核版本2.6.18,,虚拟机配置为单核CPU,1G内存,Hadoop版本为0.20.2,在HDFS中每个文件块有3个备份。
测试目的:
掌握Hadoop集群的安装测试,总结有关Hadoop集群性能的规律和影响因素,针对相关配置做出性能优化的解决方案。
测试原理:
在物理机上安装VMware虚拟机,并在虚拟机上安装RHEL5.5,下载并安装Hadoop0.20.2,按照相关属性配置有关文件。更详细的集群搭建过程参照文档。
Hadoop基准测试,在没有任务运行的集群上进行测试,基准测试主要使用Hadoop自带的一些基准测试程序。具体运行程序的方法参照相关文档。
1. 用TestDFSIO基准测试HDFS
TestDFSIO用来测试HDFS的I/O性能,它通过使用mapreduce作业来完成测试作为并行读写文件的便捷方法,每个文件的读写都在单独的map任务中进行,并且map的输出可以用来收集统计刚处理过的文件,这个统计数据在reduce中累积起来得到一个汇总。
测试命令为:
% bin/hadoop jar $HADOOP_INSTALL/hadoop-0.20.2-test.jar TestDFSIO –write
-nrFile 10
-fileSize 500
运行这个命令可进行写入基准测试,在运行的最后,结果被写入控制台并记录到本地文件TestDFSIO_results.log,文件默认写在、benchmarks/TestDFSIO目录下(可以通过设置test.build.data系统属性来改变),一个叫io_data的目录下。
使用-read 选项运行可以进行读取基准测试。但注意,读取这些文件必须已经存在(由上一步的TestDFSIO –write写入):
% bin/hadoop jar $HADOOP_INSTALL/hadoop-0.20.2-test.jar TestDFSIO –write
-nrFile 10
-fileSize 500
控制测试的变量,比如文件大小,集群节点数目,每个物理机上运行的虚拟机数量等。最后,由控制台输出和相关文件的记录进行分析,总结。
在对HDFS进行基准测试后,要通过参数–clean从HDFS上删除所有生成的文件。
% bin/hadoop jar $HADOOP_INSTALL/hadoop-0.20.2-test.jar TestDFSIO –clean
2. 用wordcount测试MapReduce的性能
Wordcount是Hadoop自带的一个测试运行的小程序,它的输入是一个文本文件,输出是一个文本文件,每一行包含一个单词和它在输入文本中出现的频率,用制表符隔开。
运行命令如下: