随着开源Hapdoop、Map/Reduce、Spark、HDFS、HBASE等技术的商用化,大数据管理技术得到了突飞猛进的发展。
利用hadoop自带基准测试工具包进行集群性能测试,测试平台为CDH5.16上hadoop2.6版本。
目录 /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/
使用TestDFSIO、mrbench、nnbench、Terasort 、sort 几个使用较广的基准测试程序。
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar
一、TestDFSIO
TestDFSIO用于测试HDFS的IO性能,使用一个MapReduce作业来并发地执行读写操作,每个map任务用于读或写每个文件,map的输出用于收集与处理文件相关的统计信息,reduce用于累积统计信息,并产生summary。
1. 测试HDFS写性能
测试内容:向HDFS集群写10个128M的文件:
sudo -uhdfs hadoop jar \/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \TestDFSIO \-write \-nrFiles 10 \-size 128MB \-resFile /tmp/TestDFSIO_results.log
查看结果:
cat /tmp/TestDFSIO_results.log
2. 测试HDFS读性能
测试内容:读取HDFS集群10个128M的文件
sudo -uhdfs hadoop jar \/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \TestDFSIO \-read \-nrFiles 10 \-size 128MB \-resFile /tmp/TestDFSIO_results.log
3. 清除测试数据
sudo -uhdfs hadoop jar \/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \TestDFSIO -clean
二、nnbench
nnbench用于测试NameNode的负载,它会生成很多与HDFS相关的请求,给NameNode施加较大的压力。这个测试能在HDFS上模拟创建、读娶重命名和删除文件等操作。
测试使用10个mapper和5个reducer来创建1000个文件:
sudo -uhdfs hadoop jar \/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-tests.jar nnbench \-operation create_write \-maps 10 \-reduces 5 \-blockSize 1 \-bytesToWrite 0 \-numberOfFiles 1000 \-replicationFactorPerFile 3 \-readFileAfterOpen true \-baseDir /benchmarks/NNBench-`hostname`