TestDFSIO基准测试方法介绍
2019年06月13日 15:04
来源:东方网
原标题:TestDFSIO基准测试方法介绍基准测试是大数据测试的常用方法,基准测试的目的主要包括:一、为性能评估建立的基线数据用以比较分析。二、为预估性能极限提供依据。三、异构计算机应用系统性能对比。
原标题:TestDFSIO基准测试方法介绍
基准测试是大数据测试的常用方法,基准测试的目的主要包括:一、为性能评估建立的基线数据用以比较分析。二、为预估性能极限提供依据。三、异构计算机应用系统性能对比。
基准测试流程的设计需要遵守一定的测试规范。测试规范需要明确测试的目的、明确系统环境配置、测试的步骤、每个步骤所用的方法,以及不同方法中具体的参数设置等条件。最后,测试规范还应当规定评测报告的相关内容,方便他人重现测试结果和对比。
TestDFSIO是Hadoop系统自带的基准测试组件,用于测试Hadoop文件系统通过MapReduce方式处理作业的IO 属性。TestDFSIO调用一个MapReduce作业来并发地执行读写操作,每个map任务用于读或写每个文件,reduce 用于累积统计信息,并产生统计总结。TestDFSIO命令规则如下:
jar_path=hadoop-test-mr1.jar(包含TestDFSIO的jar包)
hadoop jar $jar_path TestDFSIO -clean(清空包含TestDFSIO的jar包历史数据)
hadoop jar $jar_path TestDFSIO -write -nrFiles 100 -fileSize 10
hadoop jar $jar_path TestDFSIO -read -nrFiles 1000 -fileSize 10
其中:read表示读测试,write表示写测试,clean表示清理数据。nrFiles表示文件个数,默认为1;resFile为结果文件名,默认为“TestDFSIO_results.log”,多次测试会在同一文件中追加结果;bufferSize为缓存大小,默认为1000000;seq为是否有序处理,默认为无序。
以下为测试写100个大小为100000B的文件的基准测试举例:
$ su root
# free -g
# sync
# echo 3 > /proc/sys/vm/drop_caches
# free -g
# su - hadoop
$ hadoop jar hadoop-test1.jar TestDFSIO -write -nrFiles 100 -fileSize 100000
测试结果如下:
----- TestDFSIO ----- : write
Date & time: Tue Feb 19 16:41:02 CST 2019
Number of files: 100
Total MBytes processed: 10000000
Throughput mb/sec: 27.031574377700746
Average IO rate mb/sec: 27.570314373166746
IO rate std deviation: 7.083887004362187
Test exec time sec: 81.175
说明:
Total MBytes processed表示要写入的数据总量:100000*100;Throughput mb/sec表示:总数据量/每个map任务实际写入数据的执行时间之和;Average IO rate mb/sec表示:(每个map需要写入的数据量/每个map任务实际写入数据的执行时间)之和/任务数即(100000/map1写时间+100000/map2写时间+...)/100;IO rate std deviation 表示上一个值的标准差;Test exec time sec 表示整个job的执行时间。
以下为读1000个10B文件的测试,需要注意的是,读测试一定要清空linux文件系统缓存的话,否则可能会对结果影响很大。
$ su root
# free -g
# sync
# echo 3 > /proc/sys/vm/drop_caches
# free -g
# su - hadoop
$ hadoop hadoop-test1.jar TestDFSIO -read -nrFiles 1000 -fileSize 10
测试结果如下,含义和写类似:
----- TestDFSIO ----- : read
Date & time: Tue Feb 19 17:28:05 CST 2019
Number of files: 1000
Total MBytes processed: 10000
Throughput mb/sec: 37.297431703274706
Average IO rate mb/sec: 37.33410515785096
IO rate std deviation: 11.281625798573043
Test exec time sec: 41.225
最后,清理测试文件
hadoop jar hadoop-test1.jar TestDFSIO -clean
TestDFSIO命令可以多条连续执行组成一个基准测试案例,如先写后读,写小文件读大文件等等。可根据需要设计不同的测试场景。
Hadoop是目前较流行的大数据处理架构,在实际运用中由于集群数量不同、存储文件的方式不同,性能差异较大。TestDFSIO 是Hadoop系统自带的基准测试组件,相对其他基准测试组件部署、使用方式均容易操作,可以方便的用于日常工作中。
[责任编辑:谢扬烁]
- 好文
- 钦佩
- 喜欢
- 泪奔
- 可爱
- 思考