hadoop性能测试

一、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 

时间: 2024-10-20 04:55:14

hadoop性能测试的相关文章

Hadoop 性能测试工具

su - hdfs PI Estimator Testing:time hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100 TeraGen/TeraSort/TeraValidate Testing:1. time hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapre

性能测试-Hbase Hadoop监控

以前做过一个性能测试项目,基于nginx+Hbase+Hadoop,第一次接触开源的东西,遇到各种问题,印象深的是Hbase和Hadoop的监控,当时也搜索到可以用开源的监控工具或写代码通过JMX取JVM的信息.在摸索的过程中发现一种更简单方便的办法,不用监控工具和写大量代码,直接用loadrunner脚本(该办法可能不专业,但是能用,可以让项目尽快进行,仅供参考). 我们知道Hbase开放了60010和60030端口,Hadoop开放的50070端口,以web的方式查看master.regio

hadoop自带性能测试

一.TestDFSIO 读写性能测试切换到目录: /opt/hadoop/share/hadoop/mapreduce/ 清空数据hadoop jar hadoop-mapreduce-client-jobclient-2.6.4.jar -cleanhadoop fs -ls /benchmarks/ 写性能测试(10个mapper, 10G)hadoop jar hadoop-mapreduce-client-jobclient-2.6.4.jar TestDFSIO -write 10 -

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

http://www.talkwithtrend.com/Question/177983-1247453 一些测试的描述如下内容最为详细,供你参考: 测试对于验证系统的正确性.分析系统的性能来说非常重要,但往往容易被我们所忽视.为了能对系统有更全面的了解.能找到系统的瓶颈所在.能对系统性能做更好的改进,打算先从测试入手,学习Hadoop几种主要的测试手段.本文将分成两部分:第一部分记录如何使用Hadoop自带的测试工具进行测试:第二部分记录Intel开放的Hadoop Benchmark Sui

RC ORC Parquet 格式比较和性能测试

RC ORC Parquet 格式比较和性能测试 作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 为什么要比较这三者 为什么要比较,起因是为了提高Hadoop集群的存储和计算效率,尤其是离线Hive作业的效率,为什么比较的是这三者,是因为三者是目前Hive离线作业中正在大规模使用或可能大规模使用的三种主流的相对成熟的文件格式 对于ORC性能的评测,Hortonworks发过一

Hadoop、Spark、HBase与Redis的适用性讨论(全文)

最近在网上又看到有关于Hadoop适用性的讨论[1].想想今年大数据技术开始由互联网巨头走向中小互联网和传统行业,估计不少人都在考虑各种"纷繁复杂"的大数据技术的适用性的问题.这儿我就结合我这几年在Hadoop等大数据方向的工作经验,与大家讨论一下Hadoop.Spark.HBase及Redis等几个主流大数据技术的使用场景(首先声明一点,本文中所指的Hadoop,是很"狭义"的Hadoop,即在HDFS上直接跑MapReduce的技术,下同). 我这几年实际研究和

大数据测试之初识Hadoop

POPTEST老李认为测试开发工程师是面向测试的开发,也就是说,写代码就是为完成测试任务服务的,写自动化测试(性能自动化,功能自动化,安全自动化,接口自动化等等)的case或者开发测试工具完成不同类型的测试.其实自动化测试涉及面非常之广,目前来讲,case基本都可以写成自动化,而性能测试的脚本开发要围绕业务和协议特点来完成开发,并测试完成后依靠软件分析工具对被测试系统进行评估测试. 未来的技术趋势是云测试,大数据测试,安全性测试,这些要完成测试都需要自动化来完成,而自动化测试的case和工具需要

基于spark排序的一种更廉价的实现方案-附基于spark的性能测试

排序可以说是很多日志系统的硬指标(如按照时间逆序排序),如果一个大数据系统不能进行排序,基本上是这个系统属于不可用状态,排序算得上是大数据系统的一个"刚需",无论大数据采用的是hadoop,还是spark,还是impala,hive,总之排序是必不可少的,排序的性能测试也是必不可少的. 有着计算奥运会之称的Sort Benchmark全球排序每年都会举行一次,每年巨头都会在排序上进行巨大的投入,可见排序速度的高低有多么重要!但是对于大多数企业来说,动辄上亿的硬件投入,实在划不来.甚至远

hadoop、spark、hive、solr、es与YDB在车辆即席分析上的对比分析

自2012年以来,公安部交通管理局在全国范围内推广了机动车缉查布控系统(简称卡口系统),通过整合共享各地车辆智能监测记录等信息资源,建立了横向联网.纵向贯通的全国机动车缉查布控系统,实现了大范围车辆缉查布控和预警拦截.车辆轨迹.交通流量分析研判.重点车辆布控.交通违法行为甄别查处及侦破涉车案件等应用.在侦破肇事逃逸案件.查处涉车违法行为.治安防控以及反恐维稳等方面发挥着重要作用. 随着联网单位和接入卡口的不断增加,各省市区部署的机动车缉查布控系统积聚了海量的过车数据.截至目前,全国32个省(区.