Linux环境下Hadoop性能测试方法
在进行Hadoop性能测试前,需完成以下基础准备工作:
core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml)配置合理(如副本数、块大小、YARN资源分配等)。hadoop fs -rm -r /benchmarks/*删除旧测试目录)。hdfs)对测试目录有读写权限,避免因权限问题导致测试失败。Hadoop自带多个性能测试工具,覆盖HDFS、MapReduce等组件的基础性能评估:
yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<version>-tests.jar TestDFSIO -write -nrFiles <文件数量> -size <文件大小>(如-nrFiles 10 -size 1GB表示生成10个1GB文件)。yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<version>-tests.jar TestDFSIO -read -nrFiles <文件数量> -size <文件大小>。yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<version>-tests.jar TestDFSIO -clean删除测试数据。Throughput mb/sec(集群吞吐量)、Average IO rate mb/sec(平均IO速率)等指标。yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<version>-tests.jar nnbench -operation create_write -maps <mapper数量> -reduces <reducer数量> -numberOfFiles <文件数量> -replicationFactorPerFile <副本数> -baseDir /benchmarks/NNBench-<hostname>(如-maps 30 -reduces 3 -numberOfFiles 10000表示用30个mapper创建10000个文件)。hadoop fs -rm -r /benchmarks/NNBench-*删除测试目录。yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-<version>-tests.jar mrbench -numRuns <运行次数> -maps <mapper数量> -reduces <reducer数量>(如-numRuns 50 -maps 2 -reduces 1表示运行50次小作业,每次用2个mapper和1个reducer)。teragen生成随机数据(如yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-examples-<version>.jar teragen <数据量> /input/terasort/input,如10000000000表示生成100亿条数据)。terasort对数据进行排序(如yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-examples-<version>.jar terasort /input/terasort/input /output/terasort/output)。teravalidate验证排序结果的正确性(如yarn jar hadoop-<version>/share/hadoop/mapreduce/hadoop-mapreduce-examples-<version>.jar teravalidate /output/terasort/output /output/terasort/validate)。mvn -Phadoopbench -Dhadoop.version=<version> clean package)。conf/hadoop.conf文件,设置Hadoop安装路径、资源参数等。conf/frameworks.lst文件,选择需要测试的用例(如sort、wordcount)。./bin/run_all.sh启动测试,生成详细的性能报告(包含吞吐量、延迟、资源利用率等指标)。fio -filename /test/log -direct 1 -iodepth 1 -thread -rw read -ioengine psync -bs 16k -size 2G -numjobs 10 -runtime 60 -group_reporting -name test_read。fio -filename /test/log -direct 1 -iodepth 1 -thread -rw write -ioengine psync -bs 16k -size 2G -numjobs 10 -runtime 60 -group_reporting -name test_write。read/write bandwidth(读写带宽)、IOPS(每秒IO操作数)、latency(延迟)等指标。TestDFSIO,测试集群整体排序性能用TeraSort,测试多框架性能用HiBench)。TestDFSIO的nrFiles和size、TeraSort的数据量、HiBench的测试用例)。