CN103942108B - Hadoop同构集群下的资源参数优化方法 - Google Patents
Hadoop同构集群下的资源参数优化方法 Download PDFInfo
- Publication number
- CN103942108B CN103942108B CN201410171929.0A CN201410171929A CN103942108B CN 103942108 B CN103942108 B CN 103942108B CN 201410171929 A CN201410171929 A CN 201410171929A CN 103942108 B CN103942108 B CN 103942108B
- Authority
- CN
- China
- Prior art keywords
- max
- optimum value
- reducers
- mappers
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
一种Hadoop同构集群下的资源参数优化方法,包括建立同构集群的作业特征库;在默认配置下,用新作业的部分数据来运行作业,获取新作业的资源占用特征Fs;计算作业特征库中每一个作业的资源占用特征F与Fs的相对距离;取作业特征库中与Fs的相对距离最小的那个作业的参数最优取值,作为新作业s的最优取值;以新作业s的参数最优取值配置集群,完整运行新作业。本发明的有益效果:提高作业运行的执行效率;提高集群的资源使用率,避免集群资源浪费或争夺;建立作业特征库,方便后期作业分析和优化。
Description
技术领域
本发明涉及Hadoop集群性能优化技术领域,具体是一种Hadoop同构集群下的资源参数优化方法。
背景技术
近年来,随着互联网的普及和Web(网络)技术的飞速发展,全球数据呈现爆炸式增长,使得大数据处理成为一个新的研究热点。Hadoop是由Apache基金会所开发的一个基于MapReduce(一种编程模型)编程模型的开源框架,在web搜索、数据挖掘以及科学计算等大规模数据处理方面得到广泛的应用。目前Facebook(一个社交网络服务网站)、Amazon(亚马逊)等著名公司都在使用Hadoop进行大规模数据处理。
对于一个典型的MapReduce作业,一般包括3个阶段:Map(映射)、copy(复制)和Reduce(规约)。在作业提交后,默认情况下输入文件将被分成64MB(Megabyte,兆字节,简称“兆”)大小的分片进行处理。在Map阶段,主要负责对每个块进行处理,产生键值对并存放到本地文件中。在copy阶段,主要负责将Map阶段产生的键值对传递给Reduce,作为输入。在Reduce阶段,会调用自定义的函数来处理这些键值对,并产生输出结果。具体执行过程由Map任务和Reduce任务完成。
随着Hadoop的广泛应用,针对Hadoop集群的性能优化也成为了一个研究热点。现在针对Hadoop的性能优化的主要有两个方面:一是对Hadoop作业调优,包括从应用程序角度和Hadoop参数调整角度来达到优化Hadoop的集群性能的目的;二是对Hadoop集群的资源调优,主要通过修改Hadoop作业的调度算法来达到优化Hadoop的集群性能的目的。
如何在优化Hadoop的资源利用率的同时提高Hadoop的作业执行效率,是本发明主要解决的问题。
发明内容
本发明的目的是提供一种对Hadoop资源参数的调整方法,以提高资源利用率和hadoop作业的运行效率,从而提高Hadoop的集群性能。
实现本发明目的的技术方案如下:一种Hadoop同构集群下的资源参数优化方法,包括步骤一:建立Hadoop同构集群的作业特征库:任选一种以上典型作业,获取典型作业的资源占用特征F、MAX_REDUCERS最优取值和MAX_MAPPERS最优取值,将其加入作业特征库;其中,
获取典型作业的资源占用特征F的方法是:在默认配置下,运行该作业;在作业执行过程中,获取任意一个子节点的资源占用特征其中,将作业执行时间划分为相等的m个时间段,为在第j个时间段内第k种资源的平均占用情况,r为资源总数;以该子节点的资源占用特征F0作为该作业的资源占用特征F;
获取典型作业的MAX_REDUCERS最优取值和MAX_MAPPERS最优取值的方法是:
首先获取MAX_REDUCERS最优取值:在默认配置下,运行该作业,得到作业执行时间T;调整配置,以步长1来增大MAX_REDUCERS的取值后再次运行该作业,获取作业执行时间;当MAX_REDUCERS的值增加到i时,如果Ti>Ti-1,则将i-1作为MAX_REDUCERS的最优取值;然后获取MAX_MAPPERS最优取值:在MAX_REDUCERS最优取值的配置下,运行该作业,得到作业执行时间T′;调整配置,以步长1来增大MAX_MAPPERS的取值后再次运行该作业,得到作业执行时间;当MAX_MAPPERS的值增加到n时,如果T′n>T′n-1,则将n-1作为MAX_MAPPERS的最优取值;
步骤二:在默认配置下,用新作业s的部分数据G来运行作业,按照步骤一中获取典型作业的资源占用特征F的方法来获取新作业s的资源占用特征Fs;
步骤三:如果新作业s的资源占用特征Fs达到资源占用饱和状态,则以默认配置的MAX_MAPPERS值和MAX_REDUCERS值作为新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;否则,计算作业特征库中每一个作业的资源占用特征F与新作业s的资源占用特征Fs的相对距离
步骤四:如果存在一个以上Distance(F,Fs)<0.1,则取作业特征库中与Fs的相对距离最小的那个作业的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值,作为新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;否则,按照步骤一中获取典型作业的MAX_REDUCERS最优取值和MAX_MAPPERS最优取值的方法,来确定新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;
步骤五:以新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值配置集群后,完整运行新作业。
进一步地,所述新作业s的部分数据G为1G字节。
本发明的有益效果在于:1、有效地提高了作业运行的执行效率,提高了集群性能;2、合理地提高了集群的资源使用率,避免集群资源的浪费或者争夺,提高了集群性能;3、建立hadoop作业的特征库,为作业分类,方便后期作业分析和优化。
附图说明
图1是本发明中优化策略流程图;
图2是本发明中RW(生成随机数)作业与特征库中的典型作业的相对距离比较图;
图3、图4是本发明与默认配置的作业执行时间的对比图,其中图3是输入数据为5G的情况下作业执行时间对比,图4是输入数据为10G的情况下作业执行时间对比;
图5是TeraSort(太字节排序)作业在默认配置下的CPU利用率;
图6是TeraSort作业在本发明下的CPU利用率;
图7是TeraSort作业在默认配置下的I/O利用率;
图8是TeraSort作业在本发明下的I/O利用率;
图9是TeraSort作业在默认配置下的内存利用率;
图10是TeraSort作业在本发明下的内存利用率。
具体实施方式
本发明的技术方案通过合理配置协调MapReduce的各个环节,提高Hadoop作业的运行效率,并且使得集群的各种资源得到充分的利用,提高集群的资源利用率,从而从两方面优化集群的整体性能。
本发明中与集群资源相关的参数为mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum这两个参数,分别用MAX_MAPPERS、MAX_REDUCERS表示。MAX_MAPPERS是指单个节点上能并行执行的最大Map任务数,MAX_REDUCERS是指单个节点上能并行执行的最大Reduce任务数。通过设置这两个参数值,可以调整节点的资源使用情况。在每个节点上,一个Map/Reduce任务作为一个单独的线程运行,这些值如果设置过大,会导致线程之间争夺资源,从而降低作业执行效率;但是这些参数如果设置太小,又会导致资源浪费,使得作业执行效率无法达到最优。因此,需要合理地设置这些参数来提高资源利用率,从而提高作业的执行效率。
下面结合图1详细描述本发明的具体实施方式:
在本发明中,假定1.作业有输入数据,其输入数据大小大于1G;2.作业没有输入数据时,其输出数据大小大于1G。
步骤一:建立Hadoop同构集群的作业特征库:任选一种以上典型作业,获取典型作业的资源占用特征F、MAX_REDUCERS最优取值和MAX_MAPPERS最优取值,将其加入作业特征库;这里,典型作业包括Grep(打印)、Sort(排序)、RandomTextWriter(RTW,生成随机文本)等。
其中,
获取典型作业的资源占用特征F的方法是:在默认配置下,运行该作业;在作业执行过程中,获取任意一个子节点的资源占用特征其中,将作业执行时间划分为相等的m个时间段,为在第j个时间段内第k种资源的平均占用情况,r为资源总数;以该子节点的资源占用特征F0作为该作业的资源占用特征F;获取子节点的资源占用特征采用在作业执行过程中,通过编写Python(一种脚本语言)脚本调用Psutil(一个Python库)接口来获取集群每个节点的资源(CPU、I/O、内存等)的占用情况。
获取典型作业的MAX_REDUCERS最优取值和MAX_MAPPERS最优取值的方法是:
首先获取MAX_REDUCERS最优取值:在默认配置下,运行该作业,得到作业执行时间T;调整配置,以步长1来增大MAX_REDUCERS的取值后再次运行该作业,获取作业执行时间;当MAX_REDUCERS的值增加到i时,如果Ti>Ti-1,则将i-1作为MAX_REDUCERS的最优取值;然后获取MAX_MAPPERS最优取值:在MAX_REDUCERS最优取值的配置下,运行该作业,得到作业执行时间T′;调整配置,以步长1来增大MAX_MAPPERS的取值后再次运行该作业,得到作业执行时间;当MAX_MAPPERS的值增加到n时,如果T′n>T′n-1,则将n-1作为MAX_MAPPERS的最优取值;
步骤二:在默认配置下,用新作业s的部分数据G来运行作业,按照步骤一中获取典型作业的资源占用特征F的方法来获取新作业s的资源占用特征Fs;其中,新作业s的部分输入数据为1G字节,如果新作业s没有输入数据,则设定输出数据大小为1G字节。
步骤三:如果新作业s的资源占用特征Fs达到资源占用饱和状态,则以默认配置的MAX_MAPPERS值和MAX_REDUCERS值作为新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;对于作业的资源占用特征F,资源k的平均占用率为当存在超过的资源的平均占用率则称作业的资源占用特征F达到资源占用饱和状态。
否则,计算作业特征库中每一个作业的资源占用特征F与新作业s的资源占用特征Fs的相对距离
步骤四:如果存在一个以上Distance(F,Fs)<0.1,则取作业特征库中与Fs的相对距离最小的那个作业的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值,作为新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;否则,按照步骤一中获取典型作业的MAX_REDUCERS最优取值和MAX_MAPPERS最优取值的方法,来确定新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值。并且将该作业的最优配置和作业的资源占用特征加入特征库。
步骤五:以新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值配置集群后,完整运行新作业。
为了验证技术方案的有效性,进行了对比实验。先采用Hadoop集群默认配置分别运行了TeraSort(太字节排序)、WordCount(单词计数)和RandomWriter(RW,生成随机数)作业,然后再采用本发明在相同集群下运行了TeraSort、Wordcount和RW作业。
图2是本发明中RW(生成随机数)作业与特征库中的典型作业的相对距离比较图,图3、图4是本发明与默认配置的作业执行时间的对比图,其中图3是输入数据为5G的情况下作业执行时间对比,图4是输入数据为10G的情况下作业执行时间对比;图5至图10为TeraSort作业在本发明中的资源利用率与默认配置下的资源利用率的比较。实验平台为hadoop-0.20.1。集群拥有1个主节点,3个从节点。集群中每个节点的配置均为:一个4核CPU、4G内存、1T硬盘、CentOS操作系统。
Claims (2)
1.一种Hadoop同构集群下的资源参数优化方法,其特征在于,包括
步骤一:建立Hadoop同构集群的作业特征库:任选一种以上典型作业,获取典型作业的资源占用特征F、MAX_REDUCERS最优取值和MAX_MAPPERS最优取值,将其加入作业特征库;其中,
获取典型作业的资源占用特征F的方法是:在默认配置下,运行该作业;在作业执行过程中,获取任意一个子节点的资源占用特征其中,将作业执行时间划分为相等的m个时间段,为在第j个时间段内第k种资源的平均占用情况,r为资源总数;以该子节点的资源占用特征F0作为该作业的资源占用特征F;
获取典型作业的MAX_REDUCERS最优取值和MAX_MAPPERS最优取值的方法是:
首先获取MAX_REDUCERS最优取值:在默认配置下,运行该作业,得到作业执行时间T;
调整配置,以步长1来增大MAX_REDUCERS的取值后再次运行该作业,获取作业执行时间;当MAX_REDUCERS的值增加到i时,如果Ti>Ti-1,则将i-1作为MAX_REDUCERS的最优取值;
然后获取MAX_MAPPERS最优取值:在MAX_REDUCERS最优取值的配置下,运行该作业,得到作业执行时间T′;调整配置,以步长1来增大MAX_MAPPERS的取值后再次运行该作业,得到作业执行时间;当MAX_MAPPERS的值增加到n时,如果T′n>T′n-1,则将n-1作为MAX_MAPPERS的最优取值;
步骤二:在默认配置下,用新作业s的部分数据G来运行作业,按照步骤一中获取典型作业的资源占用特征F的方法来获取新作业s的资源占用特征Fs;
步骤三:如果新作业s的资源占用特征Fs达到资源占用饱和状态,则以默认配置的MAX_MAPPERS值和MAX_REDUCERS值作为新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;否则,计算作业特征库中每一个作业的资源占用特征F与新作业s的资源占用特征Fs的相对距离
步骤四:如果存在一个以上Distance(F,Fs)<0.1,则取作业特征库中与Fs的相对距离最小的那个作业的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值,作为新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;否则,按照步骤一中获取典型作业的MAX_REDUCERS最优取值和MAX_MAPPERS最优取值的方法,来确定新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值;
步骤五:以新作业s的MAX_MAPPERS最优取值和MAX_REDUCERS最优取值配置集群后,完整运行新作业。
2.如权利要求1所述的Hadoop同构集群下的资源参数优化方法,其特征在于,所述新作业s的部分数据G为1G字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410171929.0A CN103942108B (zh) | 2014-04-25 | 2014-04-25 | Hadoop同构集群下的资源参数优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410171929.0A CN103942108B (zh) | 2014-04-25 | 2014-04-25 | Hadoop同构集群下的资源参数优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103942108A CN103942108A (zh) | 2014-07-23 |
CN103942108B true CN103942108B (zh) | 2017-03-01 |
Family
ID=51189783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410171929.0A Active CN103942108B (zh) | 2014-04-25 | 2014-04-25 | Hadoop同构集群下的资源参数优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103942108B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750780B (zh) * | 2015-03-04 | 2017-10-13 | 北京航空航天大学 | 一种基于统计分析的Hadoop配置参数优化方法 |
CN106649385B (zh) * | 2015-11-02 | 2019-12-03 | 北京国双科技有限公司 | 基于HBase数据库的数据排序方法和装置 |
JP6129290B1 (ja) | 2015-12-24 | 2017-05-17 | 財團法人工業技術研究院Industrial Technology Research Institute | 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム |
CN106202431B (zh) * | 2016-07-13 | 2019-06-28 | 华中科技大学 | 一种基于机器学习的Hadoop参数自动调优方法及系统 |
CN110554910A (zh) * | 2018-05-30 | 2019-12-10 | 中国电信股份有限公司 | 优化分布式计算效能的方法和装置 |
CN110795301A (zh) * | 2018-08-01 | 2020-02-14 | 马上消费金融股份有限公司 | 作业监测方法、装置、终端以及计算机存储介质 |
CN110336806B (zh) * | 2019-06-27 | 2020-05-01 | 四川大学 | 一种结合会话行为和通信关系的隐蔽通信检测方法 |
-
2014
- 2014-04-25 CN CN201410171929.0A patent/CN103942108B/zh active Active
Non-Patent Citations (4)
Title |
---|
Hadoop Performance Models;H Herodotou;《Computer Science》;20110606;1-19 * |
Profiling, what-if analysis, and cost-based optimization of mapreduce programs;H Herodotou;《Proc of the Vldb Endowment》;20110131;1111-1122 * |
Towards automatic optimization of MapReduce programs;Shivnath Babu;《Socc》;20101231;137-142 * |
Towards Optimizing Hadoop Provisioning in the Cloud;K Kambatla;《1st Karthik Kambatla》;20090630;1-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN103942108A (zh) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103942108B (zh) | Hadoop同构集群下的资源参数优化方法 | |
CN110168516B (zh) | 用于大规模并行处理的动态计算节点分组方法及系统 | |
US20190018879A1 (en) | Eigenvalue-based data query | |
CN103699606B (zh) | 一种基于顶点切割与社区聚集的大规模图划分方法 | |
US9053067B2 (en) | Distributed data scalable adaptive map-reduce framework | |
CN103617211A (zh) | 一种HBase加载数据的导入方法 | |
CN104572895A (zh) | MPP数据库与Hadoop集群数据互通方法、工具及实现方法 | |
CN103559017B (zh) | 基于gpu异构计算平台的字符串匹配方法及系统 | |
CN106339351A (zh) | 一种sgd算法优化系统及方法 | |
Schlag et al. | Scalable edge partitioning | |
CN110909111A (zh) | 基于知识图谱rdf数据特征的分布式存储与索引方法 | |
CN102915344B (zh) | 一种sql语句处理方法及装置 | |
CN106354574A (zh) | 一种用于大数据K‑Mean聚类算法的加速系统和方法 | |
TW201730788A (zh) | 特徵資料處理方法及設備 | |
CN105630797A (zh) | 数据处理方法及系统 | |
CN106326005A (zh) | 一种迭代型MapReduce作业的参数自动调优方法 | |
CN104036141B (zh) | 一种基于OpenCL的红黑树加速方法 | |
CN108319604B (zh) | 一种hive中大小表关联的优化方法 | |
CN106502842A (zh) | 数据恢复方法及系统 | |
CN104090895B (zh) | 获取基数的方法、装置、服务器及系统 | |
CN103744899A (zh) | 一种基于分布式环境的海量数据快速分类方法 | |
CN106897450A (zh) | 一种基于HDFS海量数据快速导入HBase的方法 | |
Li et al. | Optimal data allocation for graph processing in processing-in-memory systems | |
CN105956043A (zh) | 为Hbase数据库上运行的MapReduce分配Map task的方法及装置 | |
CN114625801A (zh) | 一种基于有向无环图的区块链云-边协同共识方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |