一、hadoop自带的性能基准评测工具


(一)TestDFSIO

1、测试写性能 
(1)若有必要,先删除历史数据 
$hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient-2.3.0-cdh5.1.2-tests.jar TestDFSIO -clean 
(2)执行测试 
$hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient-2.3.0-cdh5.1.2-tests.jar TestDFSIO -write -nrFiles 5 -fileSize 20 
(3)查看结果:每一次测试生成一个结果,并以附加的形式添加到TestDFSIO_results.log中 
$cat TestDFSIO_results.log 
----- TestDFSIO ----- : write 
           Date & time: Mon May 11 09:41:34 HKT 2015 
       Number of files: 
Total MBytes processed: 100.0 
     Throughput mb/sec: 21.468441391155004 
Average IO rate mb/sec: 25.366744995117188 
 IO rate std deviation: 12.744636924030177 
    Test exec time sec: 27.585

----- TestDFSIO ----- : write 
           Date & time: Mon May 11 09:42:28 HKT 2015 
       Number of files: 5 
Total MBytes processed: 100.0 
     Throughput mb/sec: 22.779043280182233 
Average IO rate mb/sec: 25.440486907958984 
 IO rate std deviation: 9.930490103638768 
    Test exec time sec: 26.67

(4)结果说明 
Total MBytes processed : 总共需要写入的数据量 100MB 
Throughput mb/sec :总共需要写入的数据量/(每个map任务实际写入数据的执行时间之和(这个时间会远小于Test exec time sec))==》100/(map1写时间+map2写时间+...) 
Average IO rate mb/sec :(每个map需要写入的数据量/每个map任务实际写入数据的执行时间)之和/任务数==》(20/map1写时间+20/map2写时间+...)/1000,所以这个值跟上面一个值总是存在差异。 
IO rate std deviation :上一个值的标准差 
Test exec time sec :整个job的执行时间

2、测试读性能 
(1)执行测试 
$ hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-client-jobclient-2.3.0-cdh5.1.2-tests.jar TestDFSIO -read -nrFiles 5 -fileSize 20 
(2)查看测试结果 
$ cat TestDFSIO_results.log

----- TestDFSIO ----- : read 
           Date & time: Mon May 11 09:53:27 HKT 2015 
       Number of files: 5 
Total MBytes processed: 100.0 
     Throughput mb/sec: 534.75935828877 
Average IO rate mb/sec: 540.4888916015625 
 IO rate std deviation: 53.93029580221512 
    Test exec time sec: 26.704 
(3)结果说明 
结果各项意思与write相同,但其读速率比写速率快很多,而总执行时间非常接近。真正测试时,应该用较大的数据量来执行,才可体现出二者的差异。

(二)排序测试

在api文档中搜索terasort,可查询相关信息。 
排序测试的三个基本步骤: 
生成随机数据??>排序??>验证排序结果 
关于terasort更详细的原理,见http://blog.csdn.net/yuesichiu/article/details/17298563

1、生成随机数据 
$ hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.3.0-cdh5.1.2.jar  teragen -Dmapreduce.job.maps=5 10000000 /tmp/hadoop/terasort 
此步骤将在hdfs中的 /tmp/hadoop/terasort  中生成数据, 
$  hadoop fs -ls /tmp/hadoop/terasort 
Found 6 items 
-rw-r-----   3 hadoop supergroup          0 2015-05-11 11:32 /tmp/hadoop/terasort/_SUCCESS 
-rw-r-----   3 hadoop supergroup  200000000 2015-05-11 11:32 /tmp/hadoop/terasort/part-m-00000 
-rw-r-----   3 hadoop supergroup  200000000 2015-05-11 11:32 /tmp/hadoop/terasort/part-m-00001 
-rw-r-----   3 hadoop supergroup  200000000 2015-05-11 11:32 /tmp/hadoop/terasort/part-m-00002 
-rw-r-----   3 hadoop supergroup  200000000 2015-05-11 11:32 /tmp/hadoop/terasort/part-m-00003 
-rw-r-----   3 hadoop supergroup  200000000 2015-05-11 11:32 /tmp/hadoop/terasort/part-m-00004 
$ hadoop fs -du -s -h /tmp/hadoop/terasort 
953.7 M  /tmp/hadoop/terasort 
生成的5个数据竟然是每个200M,未解,为什么不是10M???

2、运行测试 
$hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.3.0-cdh5.1.2.jar  terasort -Dmapreduce.job.maps=5 /tmp/hadoop/terasort /tmp/hadoop/terasort_out 
Spent 354ms computing base-splits. 
Spent 8ms computing TeraScheduler splits. 
Computing input splits took 365ms 
Sampling 10 splits of 10 
Making 1 from 100000 sampled records 
Computing parititions took 6659ms 
Spent 7034ms computing partitions.

3、验证结果 
 $ hadoop jar /home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.3.0-cdh5.1.2.jar teravalidate  /tmp/hadoop/terasort_out /tmp/hadoop/terasort_report

Spent 44ms computing base-splits.

Spent 7ms computing TeraScheduler splits.

二、hibench 
hibench4.0测试不成功,使用3.0代替

1、下载并解压

wget https://codeload.github.com/intel-hadoop/HiBench/zip/HiBench-3.0.0

unzip HiBench-3.0.0

2、修改文件  bin/hibench-config.sh,主要是这几个

export JAVA_HOME=/home/hadoop/jdk1.7.0_67

export HADOOP_HOME=/home/hadoop/hadoop

export HADOOP_EXECUTABLE=/home/hadoop/hadoop//bin/hadoop

export HADOOP_CONF_DIR=/home/hadoop/conf

export HADOOP_EXAMPLES_JAR=/home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.3.0-cdh5.1.2.jar

export MAPRED_EXECUTABLE=/home/hadoop/hadoop/bin/mapred

#Set the varaible below only in YARN mode

export HADOOP_JOBCLIENT_TESTS_JAR=/home/hadoop/hadoop/share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.3.0-cdh5.1.2.jar/hadoop-mapreduce-client-jobclient-2.3.0-cdh5.1.2-tests.jar

3、修改conf/benchmarks.lst,哪些不想运行的将之注释掉

4、运行

bin/run-all.sh

5、查看结果

在当前目录会生成hibench.report文件,内容如下

Type         Date       Time     Input_data_size      Duration(s)          Throughput(bytes/s)  Throughput/node

WORDCOUNT    2015-05-12 19:32:33 251.248

DFSIOE-READ  2015-05-12 19:54:29 54004092852          463.863              116422505            38807501

DFSIOE-WRITE 2015-05-12 20:02:57 27320849148          498.132              54846605             18282201

PAGERANK     2015-05-12 20:27:25 711.391

SORT         2015-05-12 20:33:21 243.603

TERASORT     2015-05-12 20:40:34 10000000000          266.796              37481821             12493940

SLEEP        2015-05-12 20:40:40 0                    .177                 0                    0 

hadoop性能测试的更多相关文章

  1. hadoop2.2编程:hadoop性能测试

    <hadoop the definitive way>(third version)中的Benchmarking a Hadoop Cluster Test Cases 的class在新的 ...

  2. Hadoop生态圈-kafka事务控制以及性能测试

    Hadoop生态圈-kafka事务控制以及性能测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  3. 几个有关Hadoop自带的性能测试工具的应用

    http://www.talkwithtrend.com/Question/177983-1247453 一些测试的描述如下内容最为详细,供你参考: 测试对于验证系统的正确性.分析系统的性能来说非常重 ...

  4. [转]大数据hadoop集群硬件选择

      问题导读 1.哪些情况会遇到io受限制? 2.哪些情况会遇到cpu受限制? 3.如何选择机器配置类型? 4.为数据节点/任务追踪器提供的推荐哪些规格? 随着Apache Hadoop的起步,云客户 ...

  5. HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较

    摘要:   在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题. ...

  6. Hadoop - 实时查询Drill

    1.概述 在现实业务当中,存在这样的业务场景,需要实时去查询HDFS上的相关存储数据,普通的查询(如:Hive查询),时延较高.那么,是否存在时延较小的查询组件.在业界目前较为成熟的有Cloudera ...

  7. 论文学习 - 《Hadoop平台下的海量数据存储技术研究》

    摘要 研究背景: 1. 互联网的图片数据急剧膨胀 2. Hadoop平台下的Hdfs分布式文件系统能够很好的处理海量数据 研究内容: 1. Hadoop平台工作原理 2. Hadoop平台下图片存储系 ...

  8. Hadoop概念学习系列之常见的分布式文件系统(二十六)

    常见的分布式文件系统有,GFS.HDFS.Lustre .Ceph .GridFS .mogileFS.TFS.FastDFS等.各自适用于不同的领域.它们都不是系统级的分布式文件系统,而是应用级的分 ...

  9. [大牛翻译系列]Hadoop(18)MapReduce 文件处理:基于压缩的高效存储(一)

    5.2 基于压缩的高效存储 (仅包括技术25,和技术26) 数据压缩可以减小数据的大小,节约空间,提高数据传输的效率.在处理文件中,压缩很重要.在处理Hadoop的文件时,更是如此.为了让Hadoop ...

随机推荐

  1. angular 全局 监听路由变化

    app.run(['$rootScope', '$location', function($rootScope, $location) { /* 监听路由的状态变化 */ $rootScope.$on ...

  2. python重要模块之subprocess模块

    python重要模块之subprocess模块 我们经常要通过python去执行系统的命令或者脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就相当于发起了一个新的进程, ...

  3. python类中self是什么

    参考文献:http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html 注: (1)self在定义类的方法时是必须有的. (2)调用时 ...

  4. Android学习问题记录之open failed EACCES (Permission denied)

    1.问题描述 Android调用相机拍照保存,然后读取保存好的照片,在读取照片时出现异常(该异常是因为没有SD卡的读取权限所致): 11-08 11:07:46.421 8539-8539/com.c ...

  5. [Java]如何为一个自定义类型的List排序。

    好吧,三年了,又重拾我的博客了,是因为啥呢,哈哈哈.今天被问到一个题目,当场答不出来,动手动的少了,再此记录下来. Q:有一个MyObject类型的List,MyObject定义如下: class M ...

  6. 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

    MSBuild 的 Task 为我们扩展项目的编译过程提供了强大的扩展性,它使得我们可以用 C# 语言编写扩展:利用这种扩展性,我们可以为我们的项目定制一部分的编译细节.NuGet 为我们提供了一种自 ...

  7. Roslyn 的确定性构建

    注意到每次编译完之后,你的 dll 或者 exe 是不一样的吗?本来这并没有什么大不了的,但大家都知道数字和鹅厂的安全软件遍布在我们大(tiān)陆(cháo)地区的大量电脑上,它们的查杀策略是——凡 ...

  8. 生成代码,从 T1 到 T16 —— 自动生成多个类型的泛型

    当你想写一个泛型 的类型的时候,是否想过两个泛型参数.三个泛型参数.四个泛型参数或更多泛型参数的版本如何编写呢?是一个个编写?类小还好,类大了就杯具! 事实上,在 Visual Studio 中生成代 ...

  9. SEO SEM

    SEO:搜索引擎优化SEM:搜索引擎营销 SEO排名机制:搜索引擎蜘蛛 权重 算法 排名规则 搜索引擎提交入口: 1.百度搜索网站登入口 2.Google网站登入口 3.360搜索引擎登入入口 4.搜 ...

  10. spring事务的配置

    前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...