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
hadoop性能测试的更多相关文章
- hadoop2.2编程:hadoop性能测试
<hadoop the definitive way>(third version)中的Benchmarking a Hadoop Cluster Test Cases 的class在新的 ...
- Hadoop生态圈-kafka事务控制以及性能测试
Hadoop生态圈-kafka事务控制以及性能测试 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- 几个有关Hadoop自带的性能测试工具的应用
http://www.talkwithtrend.com/Question/177983-1247453 一些测试的描述如下内容最为详细,供你参考: 测试对于验证系统的正确性.分析系统的性能来说非常重 ...
- [转]大数据hadoop集群硬件选择
问题导读 1.哪些情况会遇到io受限制? 2.哪些情况会遇到cpu受限制? 3.如何选择机器配置类型? 4.为数据节点/任务追踪器提供的推荐哪些规格? 随着Apache Hadoop的起步,云客户 ...
- HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较
摘要: 在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题. ...
- Hadoop - 实时查询Drill
1.概述 在现实业务当中,存在这样的业务场景,需要实时去查询HDFS上的相关存储数据,普通的查询(如:Hive查询),时延较高.那么,是否存在时延较小的查询组件.在业界目前较为成熟的有Cloudera ...
- 论文学习 - 《Hadoop平台下的海量数据存储技术研究》
摘要 研究背景: 1. 互联网的图片数据急剧膨胀 2. Hadoop平台下的Hdfs分布式文件系统能够很好的处理海量数据 研究内容: 1. Hadoop平台工作原理 2. Hadoop平台下图片存储系 ...
- Hadoop概念学习系列之常见的分布式文件系统(二十六)
常见的分布式文件系统有,GFS.HDFS.Lustre .Ceph .GridFS .mogileFS.TFS.FastDFS等.各自适用于不同的领域.它们都不是系统级的分布式文件系统,而是应用级的分 ...
- [大牛翻译系列]Hadoop(18)MapReduce 文件处理:基于压缩的高效存储(一)
5.2 基于压缩的高效存储 (仅包括技术25,和技术26) 数据压缩可以减小数据的大小,节约空间,提高数据传输的效率.在处理文件中,压缩很重要.在处理Hadoop的文件时,更是如此.为了让Hadoop ...
随机推荐
- phpstorm、webstorm配置less编译器
1. node.js 安装包 https://nodejs.org/en/download/ 1) 安装js解析器node.js.直接下一步就ok了. 2) 将npm压缩包解压,找到里面的les ...
- python 之头像上传,预览
上传头像 我们需要实现的效果是:当我们点击默认头像,用户可以进行选择要上传的头像文件,其原理就是头像的img标签与文件input(file类型)框重合或者关联,可以通过如下两种方式进行实现: 方法一l ...
- allow-hotplug eth0 allow-hotplug error
/********************************************************************* * allow-hotplug eth0 error * ...
- 【剑指offer】不分行从上到下打印二叉树,C++实现(层序遍历)
原创文章,转载请注明出处! 本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印.例如: 图 不分行从上往下按层打印二叉 ...
- 【剑指offer】丑数,C++实现
原创博文,转载请注明出处!本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1. 题目 2. 思路 空间换时间的方法.由于题目要求按序查找丑数,可以采用辅助容器vector按序存储丑 ...
- [Linux]Ubuntu中的System Setting
问题 使用Ubuntu的过程中,安装搜狗输入法,卸载了系统自带的ibus.输入法搞定后,发现System Setting没有了... 原因 因为在卸载ibus等软件时,会删除一些依赖包,删除过程可能会 ...
- c++ rapidjson解析多层级json
如果一个层级为data,其内部又包含一个层级status, 可以直接通过这种方式来跨级访问: rapidjson::Value& val_status = doc["data&quo ...
- Luogu3387 缩点 【tarjan】【DP】
Luogu3387 缩点 题目背景 缩点+DP 题目描述 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 允许多次经过一条边或者一个点, ...
- 使用python处理selenium中的鼠标悬停问题
# 导入selenium中的actionchains的方法 from selenium.webdriver.common.action_chains import ActionChains #识别需要 ...
- Python学习-第三方库操作
2018-05-04 12:03:19 Python安装模块,更新模块 #显示模块 pip list #显示过期模块 pip list --outdated #安装模块 pip install x ...