[Hadoop] 使用DFSIO测试集群I/O性能
DFSIO是Hadoop自带的用于集群分布式I/O性能基准测试的工具,其源码为https://github.com/apache/hadoop/blob/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/fs/TestDFSIO.java。
DFSIO 用法 hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.X-tests.jar TestDFSIO 15/05/22 19:50:22 INFO fs.TestDFSIO: TestDFSIO.1.8 Missing arguments. Usage: TestDFSIO [genericOptions] -read [-random | -backward | -skip [-skipSize Size]] | -write | -append | -truncate | -clean [-compression codecClassName] [-n rFiles N] [-size Size[B|KB|MB|GB|TB]] [-resFile resultFileName] [-bufferSize Bytes] DFSIO可以测试写操作和读操作,以MapReduce作业的方式运行,返回整个集群的I/O性能报告。DFSIO读写测试的位置在hdfs://namendoe:8020/benchmarks/TestDFSIO/io_data,其中读测试不会自己产生数据,必须先执行DFSIO写测试。
-read:读测试,对每个文件读-size指定的字节数 -write:写测试,对每个文件写-size指定的字节数 -append:追加测试,对每个文件追加-size指定的字节数 -truncate:截断测试,对每个文件截断至-size指定的字节数 -clean:清除TestDFSIO在HDFS上生成数据 -n:文件个数 -size:每个文件的大小 -resFile:生成测试报告的本地文件路径 -bufferSize:每个mapper任务读写文件所用到的缓存区大小,默认为1000000字节。 DFSIO测试 写10个100MB的文件 hadoop@node50064:~$ hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.X-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 100MB -resFile /tmp/DFSIO-write.out 查看写测试结果 本地文件/tmp/DFSIO-write.out包含写测试性能报告: