`

Hadoop Gridmix

阅读更多
1、 概述

    Hadoop Gridmix是针对hadoop系统的基准测试程序。它具备评测大规模数据处理系统所需的各个功能模块,包括:产生数据,生成并提交作业,统计作业完成时间等。本文主要介绍了Hadoop cdh4.0.1中自带的Gridmix2基准测试程序(位于\src\benchmarks目录下)的设计原理及使用方法。


    2、 作业种类

    Gridmix通过模拟hadoop cluster中的实际负载来评测hadoop性能。它首先根据用户设定的参数生成大量数据和一批作业,然后同时提交这些作业(批处理),最后统计出这批作业的运行时间。为了尽可能地模拟现实中的各种作业,Gridmix自带了各种具有代表性的作业,分别为streamSort,javaSort,webdataScan,combiner(这个作业只是对结果进行了压缩),monsterQuery,webdataSort,可以将这些作业分为以下几类:


    (1) 三阶段map/reduce作业

输入:500G压缩(等价于2T未压缩的)SequenceFile
(key,value)=(5 words,100 words)
计算1:map保留10%的数据,reduce保留40%数据,
计算2:map保留10%的数据,reduce保留40%数据,数据来自[计算1]的输出
计算3:map保留10%的数据,reduce保留40%数据,数据来自[计算2]的输出
动机:很多作业负载是流水式 map/reduce 作业,包括pig
对应作业:monsterQuery


    (2) 大规模数据排序,其中key和value长度都是变化的

输入:500G压缩(等价于2T未压缩的)SequenceFile
(key,value)=(5-10 words,100-10000 words)
计算:map保留100%的数据,reduce保留100%数据
动机:处理大规模的压缩数据是非常常见的
对应作业:webdataSort


    (3) 过滤

输入:500G压缩(等价于2T未压缩的)SequenceFile
(key,value)=(5-10 words,100-10000 words)
计算:map保留0.2%的数据,reduce保留5%数据
动机:对大数据集进行过滤是很常见的
对应作业:webdataScan


    (4) API 文本排序(直接调用一些API进行排序)

输入:500G未压缩文本
(key,value)=(1-10 words,0-200 words)
计算:map保留100%的数据,reduce保留100%数据
动机:map/reduce直接调用库函数进行排序
对应作业:streamSort,javaSort,其中streamSort使用了shell命令cat作为mapper和reducer(这并不是排序,只是简单的进行逐行扫描),javaSort调用了java中的API进行排序。
Gridmix生成的一个基准负载包含不同数量的各种类型的作业,且每种作业处理的数据量也不同。用户可以在一个xml文件中配置作业数量和数据量,Gridmix会根据这个配置文件构造相应的作业,提交到集群中并监控它们的执行情况直到所有作业完成。


    3、 使用方法


    (1) 编译

    在src/benchmarks/gridmix下,输入“ant”,会在build目录下生成gridmix.jar文件,把它copy到gridmix目录下。


    (2) 配置环境变量

修改脚本gridmix-env-2中的以下几个变量值:
HADOOP_HOME:hadoop安装路径,如/opt/hadoop
HADOOP_VERSION:hadoop版本,如hadoop-2.0.0-cdh4.0.1
HADOOP_CONF_DIR:conf路径,如${HADOOP_HOME}/conf
USE_REAL_DATA:是否使用大的数据集(2TB),如果设为false,缺省数据量是2G。用户可以在generateGridmix2Data.sh根据需要配置。


    (3) 配置作业信息

Gridmix提供了一个缺省的gridmix_conf.xml,用户可以根据自己的需要作修改。修改的内容可以是:作业的类型和数量,作业处理的数据量,reduce task数目,是否对数据结果进行压缩等。需要注意的是,用户可以配置多个不同reduce数量的同一类型作业,比如:

javaSort.smallJobs.numOfJobs
8,2

javaSort.smallJobs.numOfReduces
15,70

上面的例子设置了10个java sort小作业,其中8个每个带有15个reduce task,另外2个每个带70个reduce task。
在Gridmix中,每种作业有大中小三种类型,小作业只有3个map task(只处理{part-00000,part-00001,part-00002}三块数据);中作业的task 数目与数据总量有关,它处理与正则表达式{part-000*0,part-000*1,part-000*2}匹配的数据块,比如有10个数据块,分别是part-00000,part-00001,part-00002…part-0009,则中作业只会处理前三块;大作业会处理所有数据。


    (4) 产生数据

使用generateGridmix2Data.sh脚本产生数据,用户可以根据需要配置数据量。在Gridmix中,数据压缩率是4x。


    (5) 运行

首先确保hadoop集群已经启动,然后运行./rungridmix_2,该脚本会创建start.out记录作业运行开始时间,作业结束时,创建end.out记录完成时间。


    4、 总结

    Hadoop Gridmix由两个版本,本文讨论的是第二个版本,即Gridmix2。.Gridmix2具有很好的扩展性,用户可以很容易地添加其它作业,同时它能很好的模拟批处理情况。但缺点是它不能模拟随机提交作业(比如按泊松分布进行提交)的应用场景。


    5、 参考资料

(1) Hadoop Gridmix中自带的README.gridmix2文件(hadoop/hadoop-mapreduce-project/src/benchmarks/gridmix2/README.gridmix2)
(2) http://hadoop.group.iteye.com/group/topic/10401
分享到:
评论

相关推荐

    hadoop-2.2.0-x64.tar.gz part3

    [INFO] Apache Hadoop Gridmix ............................. SUCCESS [5.291s] [INFO] Apache Hadoop Data Join ........................... SUCCESS [5.463s] [INFO] Apache Hadoop Extras .......................

    hadoop-2.2.0-x64.tar.gz part2

    [INFO] Apache Hadoop Gridmix ............................. SUCCESS [5.291s] [INFO] Apache Hadoop Data Join ........................... SUCCESS [5.463s] [INFO] Apache Hadoop Extras .......................

    hadoop-0.21.0-gridmix.jar

    hadoop-0.21.0-gridmix.jar

    hadoop-2.2.0-x64.tar.gz part1

    [INFO] Apache Hadoop Gridmix ............................. SUCCESS [5.291s] [INFO] Apache Hadoop Data Join ........................... SUCCESS [5.463s] [INFO] Apache Hadoop Extras .......................

    hadoop-gridmix-2.6.0.jar

    java运行依赖jar包

    hadoop-gridmix-2.6.0-sources.jar

    java运行依赖jar包

    hadoop-gridmix-2.6.0-test-sources.jar

    java运行依赖jar包

    hadoop2.7.3 hadoop.dll

    在windows环境下开发hadoop时,需要配置HADOOP_HOME环境变量,变量值D:\hadoop-common-2.7.3-bin-master,并在Path追加%HADOOP_HOME%\bin,有可能出现如下错误: org.apache.hadoop.io.nativeio.NativeIO$Windows....

    《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf

    《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf...

    Hadoop下载 hadoop-2.9.2.tar.gz

    Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo 的工程师 Doug Cutting 和 Mike Cafarella Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo...

    Hadoop下载 hadoop-3.3.3.tar.gz

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不...

    Hadoop权威指南 中文版

    本书从hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍hado叩这一高性能处理海量数据集的理想工具。全书共14章,3个附录,涉及的主题包括:haddoop简介:mapreduce简介:hadoop分布式文件系统;hadoop的i...

    apache hadoop 2.7.2.chm

    GridMix Rumen Scheduler Load Simulator Reference Release Notes API docs Common CHANGES.txt HDFS CHANGES.txt MapReduce CHANGES.txt YARN CHANGES.txt Metrics Configuration core-default.xml ...

    hadoop0.23.9离线api

    org.apache.hadoop.mapred.gridmix.emulators.resourceusage org.apache.hadoop.mapred.jobcontrol org.apache.hadoop.mapred.join org.apache.hadoop.mapred.lib org.apache.hadoop.mapred.lib.aggregate org....

    hadoop最新版本3.1.1全量jar包

    hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar ...

    hadoop-3.3.4 版本(最新版)

    Apache Hadoop (hadoop-3.3.4.tar.gz)项目为可靠、可扩展的分布式计算开发开源软件。官网下载速度非常缓慢,因此将hadoop-3.3.4 版本放在这里,欢迎大家来下载使用! Hadoop 架构是一个开源的、基于 Java 的编程...

    hadoop配置资源 ,hadoop-3.0.0,hadoop.dll,winutils

    调用保存文件的算子,需要配置Hadoop依赖 将文件夹中的 hadoop-3.0.0 解压到电脑任意位置 在Python代码中使用os模块配置:os.environ[‘HADOOP_HOME’] = ‘HADOOP解压文件夹路径’ winutils.exe,并放入Hadoop解压...

    Hadoop集群pdf文档

    Hadoop 集群配置详解 Hadoop_Hadoop集群(第1期)_CentOS安装配置 Hadoop_Hadoop集群(第2期)_机器信息分布表 Hadoop_Hadoop集群(第4期)_SecureCRT使用 Hadoop_Hadoop集群(第5期)_Hadoop安装配置 Hadoop_Hadoop...

    hadoop2.7.3 Winutils.exe hadoop.dll

    hadoop2.7.3 Winutils.exe hadoop.dll

    hadoop的dll文件 hadoop.zip

    hadoop的dll文件 hadoop.zip

Global site tag (gtag.js) - Google Analytics