注册

TestDFSIO基准测试方法介绍


来源:东方网

原标题: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系统自带的基准测试组件,相对其他基准测试组件部署、使用方式均容易操作,可以方便的用于日常工作中。

【广告】免责声明:本文转自网络,仅为传播信息之目的,如有异议请联系ifengcom77@163.com。

[责任编辑:谢扬烁]

  • 好文
  • 钦佩
  • 喜欢
  • 泪奔
  • 可爱
  • 思考

新闻图片

凤凰新闻 天天有料
分享到: