Hadoop系列(三):hadoop基本测试
下面是对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
校验数据为空,排序功能正常