下面是对hadoop的一些基本测试示例
Hadoop自带测试类简单使用
这个测试类名叫做 hadoop-mapreduce-client-jobclient.jar,位置在 hadoop/share/hadoop/mapreduce/ 目录下
不带任何参数可以获取这个jar的帮助信息
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar
1. TestDFSIO
用于测试hdfs的IO性能,使用一个mapReduce作业来并发的执行读写操作,每个map任务用于读或写每个文件,map输出用于手机与处理文件相关的统计信息,Reduce用于累计和统计信息,并产生summary。
1) TestDFSIO write
例子:向HDFS中写入10个1000M文件
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -write -nrFiles 10 -fileSize 1000 -resFile /home/hadoop/hadoop_test/TestDFSIO_write.log
测试结果如下:
----- TestDFSIO ----- : write
Date & time: Thu Nov 15 12:04:51 CST 2018
Number of files: 10
Total MBytes processed: 10000
Throughput mb/sec: 6.29
Average IO rate mb/sec: 6.39
IO rate std deviation: 0.87
Test exec time sec: 230.35
参数说明:
TestDFSIO 表示测试类型
-write 表示写测试
-nrFiles 表示往HDFS 写入多少个文件
-fileSize 表示写入每个文件的大小
-resFile 表示最后的测试结果输出到的文件
2) TestDFSIO read
例子:从HDFS中读取10个1000M文件
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -read -nrFiles 10 -fileSize 1000 -resFile /home/hadoop/hadoop_test/TestDFSIO_read.log
测试结果如下:
----- TestDFSIO ----- : read
Date & time: Thu Nov 15 13:31:10 CST 2018
Number of files: 10
Total MBytes processed: 10000
Throughput mb/sec: 20.23
Average IO rate mb/sec: 21.09
IO rate std deviation: 4.26
Test exec time sec: 97.46
3) 清空测试数据
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar TestDFSIO -clean
2. nnbench测试
nnbench用于测试NameNode的负载,他会产生很多余HDFS相关的请求,给NameNode施加较大的压力。这个测试能在hdfs上模拟创建,读取,重命名和删除文件等操作。
例子: 使用12个mapper和6个Reduce来创建1000个文件
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar nnbench -operation create_write -maps 12 -reduces 6 \
-blockSize 1 -bytesToWrite 0 -numberOfFiles 1000 -replicationFactorPerFile 3 -readFileAfterOpen true \
-baseDir /benchmarks/NNBench-`hostname -s`
3. mrbench测试
mrbench会多次重复一个小作业,用于检查在集群上小作业的是否可重复以及运行是否可高效,用法如下:
例子:以下会运行一个小作业一共50次
$ yarn jar hadoop-mapreduce-client-jobclient-2.8.5.jar mrbench -numRuns 50
测试结果:
DataLines Maps Reduces AvgTime (milliseconds)
1 2 1 30248
4. mapreduce 排序测试
生成1G测试数据放到/examples/terasort-input
$ yarn jar hadoop-mapreduce-examples-2.8.5.jar teragen 10000000 /examples/terasort-input
开始排序
$ yarn jar hadoop-mapreduce-examples-2.8.5.jar terasort /examples/terasort-input /examples/terasort-output
/examples/terasort-input 输入目录
/examples/terasort-output 输出目录
查看校验数据
/examples/terasort-output/part-r-00000
校验数据为空,排序功能正常