CN103064664B - 一种基于性能预估的Hadoop参数自动优化方法和系统 - Google Patents

一种基于性能预估的Hadoop参数自动优化方法和系统 Download PDF

Info

Publication number
CN103064664B
CN103064664B CN201210494961.3A CN201210494961A CN103064664B CN 103064664 B CN103064664 B CN 103064664B CN 201210494961 A CN201210494961 A CN 201210494961A CN 103064664 B CN103064664 B CN 103064664B
Authority
CN
China
Prior art keywords
hadoop
configuration scheme
parameter configuration
application program
parameter
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.)
Expired - Fee Related
Application number
CN201210494961.3A
Other languages
English (en)
Other versions
CN103064664A (zh
Inventor
金海�
石宣化
吴松
曾林西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201210494961.3A priority Critical patent/CN103064664B/zh
Publication of CN103064664A publication Critical patent/CN103064664A/zh
Application granted granted Critical
Publication of CN103064664B publication Critical patent/CN103064664B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于性能预估的Hadoop参数自动优化方法,包括:统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件,获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t,根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。本发明能够解决现有方法中存在的高成本、低效率、高门槛、以及增加Hadoop代码复杂性的问题。

Description

一种基于性能预估的Hadoop参数自动优化方法和系统
技术领域
本发明属于分布式计算模型领域,更具体地,涉及一种基于性能预估的Hadoop参数自动优化方法和系统。
背景技术
随着云计算的兴起,Mapreduce编程模型作为一种简化大规模数据处理的重要手段得到越来越广泛的应用。Hadoop是Mapreduce的一个开源实现,是一个能够对大量数据进行分布式处理的软件框架,通过它用户可以在不了解分布式底层细节的情况下很方便的开发分布式程序。Hadoop中共有180个以上的参数用以控制应用程序的运行,用户可以根据自己的需要来调整这些参数的值,大量的实验表明Hadoop系统参数的设置对应用程序的性能有着很大的影响。现有的Hadoop参数优化方法主要有两种:(1)是在实际的Hadoop集群上运行Hadoop应用程序,然后根据以前的经验总结以及对Hadoop系统本身的理解手动优化Hadoop参数,并通过实验来验证参数优化的效果;(2)是通过修改Hadoop本身的代码,将参数优化的功能模块加入Hadoop里面来达到Hadoop参数自动优化的目的,如:发表在2010年SoCC上的论文:Towards automatic optimization of MapReduce programs,借鉴了数据库中的查询优化思想,提出一种消除“调整钮”的方法,通过代码重写或者在系统中实现参数自动调整控制器的方法,将某些参数设置的工作交给Hadoop系统来完成。
然而现有的参数优化方法存在以下问题:
(1)高成本、低效率:在第一种Hadoop参数优化方法中,需要在实际的Hadoop集群上多次运行Hadoop应用程序,会占用大量的系统资源,且每次优化参数进行测试都需要很长的时间;
(2)高门槛:使用第一种方法进行Hadoop参数优化,需要用户本身对Hadoop的底层实现原理以及Hadoop各个参数的作用有所了解,以及具备大量的Hadoop参数优化经验,以上这两点都是大量普通Hadoop用户所缺乏的。
(3)增加了Hadoop本身代码的复杂性:方法(2)需要对Hadoop本身的代码进行修改,以及添加Hadoop参数调优的功能模块,这使得Hadoop系统更加难以维护。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于性能预估的Hadoop参数自动优化方法,旨在能够解决现有方法中存在的高成本、低效率、高门槛、以及Hadoop代码复杂的问题。
为实现上述目的,本发明提供了一种基于性能预估的Hadoop参数自动优化方法,包括以下步骤:
(1)统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;
(2)根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,具体包括以下子步骤:
(2-1)获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案;
(2-2)根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t;
(3)根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。
步骤(1)具体为,首先,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取相应的数据,并将跟踪到的数据进行统计分析,以生成XML格式的输出文件存入用户指定的目录中,用于可视化的展示Hadoop应用程序运行细节,然后,将为运行该Hadoop应用程序分配的资源,以及该Hadoop应用程序对应的参数配置方案追加到输出文件中。
应用程序的运行特征包括各个阶段的运行时间,以及处理和传输的数据。
步骤(2)具体是采用以下公式:
t = F J ( r → , d → , p → )
其中表示为运行该Hadoop应用程序分配的资源,表示输出文件,表示该Hadoop应用程序对应的参数配置方案,FJ是Hadoop应用程序的运行时间关于三个变量的一个复杂函数。
步骤(3)包括以下子步骤:
(3-1)接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件;
(3-2)根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中n为正整数;
(3-3)使用步骤(2)的方法预估Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,...t3n];
(3-4)将Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x,并删除排在后面的2*n个参数配置方案;
(3-5)利用遗传算法将前n个运行时间值对应的参数配置方案变为3*n个参数配置方案;
(3-6)将Hadoop应用程序在3*n个参数配置方案的运行时间[t’1,t’2,...t’3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x’,并删除排在后面的2*n个参数配置方案;
(3-7)判断x和x’差的绝对值是否不小于某一阈值,若不小于阈值,则返回步骤(3-5),否则过程结束。
阈值的取值为x的1%至5%。
通过本发明所构思的以上技术方案,与现有技术相比,本方法具有以下的有益效果:
(1)高效率和低成本:因为采用了步骤(2-2-),使用MapReduce模拟技术来预估Hadoop应用程序的运行时间,而MapReduce模拟器只需要在单机环境下就能运行,所占用的系统资源非常小,且获得结果的速度快所以具有高效率和低成本;
(2)使用方便:因为采用了步骤(3),使用遗传算法来自动生成和选择Hadoop参数配置方案,不需要用户手动去调整参数,对用户的使用要求很低;
(3)可扩展:因为采用了步骤(1),使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取Hadoop应用程序的运行数据,不需要对Hadoop本身的代码进行修改,不仅仅适用于少数几台机器组成的Hadoop集群,对含有大量机器的集群同样适用,而且新增加一台机器后只需要修改系统的几个输入文件,系统其它部分不需要做任何修改,具有很高的可扩展性。
本发明的另一目的在于提供一种基于性能预估的Hadoop参数自动优化系统,旨在能够解决现有系统中存在的高成本、低效率、高门槛、以及Hadoop代码复杂的问题。
为实现上述目的,本发明提供了一种基于性能预估的Hadoop参数自动优化系统,包括Hadoop应用程序分析模块、性能预估模块、以及参数调整模块,Hadoop应用程序分析模块用于统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件,性能预估模块用于根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,并包括输入子模块和Hadoop集群模拟子模块,输入子模块用于获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,Hadoop集群模拟子模块用于根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t,参数调整模块用于根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。
参数调整模块包括接收子模块、生成子模块、预估子模块、第一排序子模块、变异子模块、第二排序子模块以及判断子模块,接收子模块用于接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件,生成子模块用于根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中n为正整数,预估子模块用于使用性能预估模块预估Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n],第一排序子模块用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,...t3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x,并删除排在后面的2*n个参数配置方案,变异子模块用于利用遗传算法将前n个运行时间值对应的参数配置方案变为3*n个参数配置方案,第二排序子模块用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t’1,t’2,...t’3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x’,并删除排在后面的2*n个参数配置方案,判断子模块用于判断x和x’差的绝对值是否不小于某一阈值,若不小于阈值,则返回变异子模块,否则过程结束。
通过本发明所构思的以上技术方案,与现有技术相比,本系统具有以下的有益效果:
(1)高效率和低成本:因为采用了Hadoop集群模拟子模块,使用MapReduce模拟技术来预估Hadoop应用程序的运行时间,而MapReduce模拟器只需要在单机环境下就能运行,所占用的系统资源非常小,且获得结果的速度快所以具有高效率和低成本;
(2)使用方便:因为采用了参数调整模块,使用遗传算法来自动生成和选择Hadoop参数配置方案,不需要用户手动修改,不仅减少了用户的工作量,同时也降低了使用的门槛,极大地方便了用户;
(3)可扩展:因为采用了Hadoop应用程序分析模块,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取Hadoop应用程序的运行数据,不需要对Hadoop本身的代码进行修改,不仅仅适用于少数几台机器组成的Hadoop集群,对含有大量机器的集群同样适用,而且新增加一台机器后只需要修改系统的几个输入文件,系统其它部分不需要做任何修改,具有很高的可扩展性。
附图说明
图1是本发明基于性能预估的Hadoop参数自动优化方法的流程图。
图2是本发明方法中步骤(3)的细化流程图。
图3是本发明基于性能预估的Hadoop参数自动优化系统的结构示意图。
图4是本发明输入子模块和Hadoop集群模拟子模块的示意框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明基于性能预估的Hadoop参数自动优化方法包括以下步骤:
(1)统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;具体而言,应用程序的运行特征包括各个阶段的运行时间,以及处理和传输的数据;首先,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取相应的数据,并将跟踪到的数据进行统计分析,以生成XML格式的输出文件存入用户指定的目录中,用于可视化的展示Hadoop应用程序运行细节,然后,将为运行该Hadoop应用程序分配的资源,以及该Hadoop应用程序对应的参数配置方案追加到输出文件中。
使用btrace跟踪跟踪Hadoop集群的应用程序不仅安全,不会影响到程序本身的运行,而且也不需要修改Hadoop的代码,可以使本发明与Hadoop的具体版本隔离,不需要与某个具体的Hadoop版本绑定,扩大了本发明的适用范围;
(2)根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,具体包括以下子步骤:
(2-1)获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案;
(2-2)根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t;
具体是采用以下公式:
t = F J ( r → , d → , p → )
其中表示为运行该Hadoop应用程序分配的资源,表示输出文件,表示该Hadoop应用程序对应的参数配置方案,FJ是Hadoop应用程序的运行时间关于三个变量的一个复杂函数,为了提高性能预估的精度,本发明使用Hadoop集群模拟器替代FJ的功能;
(3)根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案,具体包括以下子步骤(如图2所示):
(3-1)接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件;
(3-2)根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中n为正整数;
(3-3)使用步骤(2)的方法预估Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,...t3n];
(3-4)将Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x,并删除排在后面的2*n个参数配置方案;
(3-5)利用遗传算法将前n个运行时间值对应的参数配置方案变为3*n个参数配置方案;
(3-6)将Hadoop应用程序在3*n个参数配置方案的运行时间[t’1,t’2,...t’3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x’,并删除排在后面的2*n个参数配置方案;
(3-7)判断x和x’差的绝对值是否不小于某一阈值,若不小于阈值,则返回步骤(3-5),否则过程结束;在本实施方式中,阈值的取值为x的1%至5%。
如图3所示,本发明基于性能预估的Hadoop参数自动优化系统包括Hadoop应用程序分析模块1、性能预估模块2、以及参数调整模块3。
Hadoop应用程序分析模块1用于统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;具体而言,应用程序的运行特征包括各个阶段的运行时间,以及处理和传输的数据;首先,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取相应的数据,并将跟踪到的数据进行统计分析,以生成XML格式的输出文件存入用户指定的目录中,用于可视化的展示Hadoop应用程序运行细节,然后,将为运行该Hadoop应用程序分配的资源,以及该Hadoop应用程序对应的参数配置方案追加到输出文件中。
性能预估模块2用于根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能。
性能预估模块2包括输入子模块21和Hadoop集群模拟子模块22。
输入子模块21获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案。如图4所示,输入子模块21包括作业描述1A、数据分布1B、网络拓扑1C和集群机器1D这四个文件。其中,作业描述1A是Hadoop应用程序分析模块的输出文件,里面含有该程序在Hadoop集群上运行的各种统计信息;数据分布1B文件描述了输入数据在Hadoop集群中的分布;网络拓扑1C和集群机器1D分别包含Hadoop集群的网络拓扑结构和Hadoop集群中机器的性能参数信息。用户提交这四个描述文件后,输入子模块21对这些文件进行相应处理,提取出模拟器所需的信息用于预估Hadoop应用程序在集群上的运行性能。用户提交文件后,输入子模块21对这些文件进行处理,提取文件中的信息作为Hadoop集群模拟器的输入数据。
Hadoop集群模拟子模块22用于根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t;
具体是采用以下公式:
t = F J ( r → , d → , p → )
其中表示为运行该Hadoop应用程序分配的资源,表示输出文件,表示该Hadoop应用程序对应的参数配置方案,FJ是Hadoop应用程序的运行时间关于三个变量的一个复杂函数,为了提高性能预估的精度,本发明使用Hadoop集群模拟器替代FJ的功能。
如图4所示,Hadoop集群模拟子模块22包括MapReduce模拟2A、集群网络模拟2B、磁盘I/O模拟2C。MapReduce 2A模块提供了一个对MapReduce作业细粒度的模拟,结合代价模型估算Hadoop应用程序运行时每个阶段的运行时间,进而估算出程序总的运行时间;集群网络模拟2B模块,用于模拟Hadoop应用程序执行过程中各个进程之间的通信,包括节点之间的数据传输以及节点内部不同进程之间的通信;磁盘I/O模拟2C模块,用于模拟Hadoop应用程序执行过程中的磁盘I/O,包括从HDFS中读取数据,map任务中间结果写入本地磁盘、reduce任务从本地磁盘中读取数据、reduce处理结果写入HDFS。
Hadoop集群模拟子模块22将输入子模块21的输出数据作为输入,然后使用MapReduce模拟技术并结合代价模型对这些数据进行处理,最后,输出MapReduce作业的详细运行信息,包括作业执行时间、节点间数据传输量的大小、任务各个阶段的时间线等等。
参数调整模块3用于根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案,并包括接收子模块31、生成子模块32、预估子模块33、第一排序子模块34、变异子模块35、第二排序子模块36以及判断子模块37。
接收子模块31用于接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件。
生成子模块32用于根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中n为正整数。
预估子模块33用于使用性能预估模块2预估Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,...t3n]。
第一排序子模块34用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x,并删除排在后面的2*n个参数配置方案。
变异子模块35用于利用遗传算法将前n个运行时间值对应的参数配置方案变为3*n个参数配置方案。
第二排序子模块36用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t’1,t’2,...t’3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个x’,并删除排在后面的2*n个参数配置方案。
判断子模块37用于判断x和x’差的绝对值是否不小于某一阈值,若不小于阈值,则返回变异子模块35,否则过程结束。
实例:
为了验证本发明系统的可行性和有效性,在真实环境下配置本发明系统,对Hadoop典型应用集合进行实验。
本发明的Hadoop集群基本硬件和软件配置如表1所示:
表1
本发明的各模块部署包括两个部分:将Hadoop应用程序分析模块1以jar包的形式分发到Hadoop集群的每个从节点;其余的性能预估模块2,参数调整模块3,用户交互模块4以用户程序形式存放在工作目录下。
本发明首先对用户提交的Hadoop应用程序进行跟踪,收集和统计程序在集群上的运行信息;然后根据应用程序的特点建立代价模型,并结合Hadoop集群模拟技术预估该应用程序各种参数配置方案下的运行性能;最后找出使该应用程序运行性能最好的参数配置方案,实现Hadoop参数自动优化。该系统快速、自动、有效的为用户提供优化后的参数配置方案,减少Hadoop参数优化的工作量和所耗资源,同时提高了Hadoop应用程序的运行性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于性能预估的Hadoop参数自动优化方法,其特征在于,包括以下步骤:
(1)统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;
(2)根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,具体包括以下子步骤:
(2-1)获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案;
(2-2)根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t;
(3)根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。
2.根据权利要求1所述的Hadoop参数自动优化方法,其特征在于,步骤(1)具体为,首先,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取相应的数据,并将跟踪到的数据进行统计分析,以生成XML格式的输出文件存入用户指定的目录中,用于可视化的展示Hadoop应用程序运行细节,然后,将为运行该Hadoop应用程序分配的资源,以及该Hadoop应用程序对应的参数配置方案追加到输出文件中。
3.根据权利要求1所述的Hadoop参数自动优化方法,其特征在于,应用程序的运行特征包括各个阶段的运行时间,以及处理和传输的数据。
4.根据权利要求1所述的Hadoop参数自动优化方法,其特征在于,步骤(3)包括以下子步骤:
(3-1)接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件;
(3-2)根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中n为正整数;
(3-3)使用步骤(2)的方法预估Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n];
(3-4)将Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个时间值x,并删除排在后面的2*n个参数配置方案;
(3-5)利用遗传算法将前n个运行时间值对应的参数配置方案变为3*n个参数配置方案;
(3-6)将Hadoop应用程序在3*n个参数配置方案的运行时间[t’1,t’2,…t’3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个时间值x’,并删除排在后面的2*n个参数配置方案;
(3-7)判断x和x’差的绝对值是否不小于某一阈值,若不小于阈值,则返回步骤(3-5),否则过程结束。
5.根据权利要求4所述的Hadoop参数自动优化方法,其特征在于,阈值的取值为x的1%至5%。
6.一种基于性能预估的Hadoop参数自动优化系统,其特征在于,
包括Hadoop应用程序分析模块、性能预估模块、以及参数调整模块;
Hadoop应用程序分析模块用于统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;
性能预估模块用于根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,并包括输入子模块和Hadoop集群模拟子模块;
输入子模块用于获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案;
Hadoop集群模拟子模块用于根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t;
参数调整模块用于根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。
7.根据权利要求6所述的Hadoop参数自动优化系统,其特征在于,
参数调整模块包括接收子模块、生成子模块、预估子模块、第一排序子模块、变异子模块、第二排序子模块以及判断子模块;
接收子模块用于接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件;
生成子模块用于根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中n为正整数;
预估子模块用于使用性能预估模块预估Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n];
第一排序子模块用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t1,t2,…t3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个时间值x,并删除排在后面的2*n个参数配置方案;
变异子模块用于利用遗传算法将前n个运行时间值对应的参数配置方案变为3*n个参数配置方案;
第二排序子模块用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t’1,t’2,…t’3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个时间值x’,并删除排在后面的2*n个参数配置方案;
判断子模块用于判断x和x’差的绝对值是否不小于某一阈值,若不小于阈值,则返回变异子模块,否则过程结束。
CN201210494961.3A 2012-11-28 2012-11-28 一种基于性能预估的Hadoop参数自动优化方法和系统 Expired - Fee Related CN103064664B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210494961.3A CN103064664B (zh) 2012-11-28 2012-11-28 一种基于性能预估的Hadoop参数自动优化方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210494961.3A CN103064664B (zh) 2012-11-28 2012-11-28 一种基于性能预估的Hadoop参数自动优化方法和系统

Publications (2)

Publication Number Publication Date
CN103064664A CN103064664A (zh) 2013-04-24
CN103064664B true CN103064664B (zh) 2015-07-22

Family

ID=48107302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210494961.3A Expired - Fee Related CN103064664B (zh) 2012-11-28 2012-11-28 一种基于性能预估的Hadoop参数自动优化方法和系统

Country Status (1)

Country Link
CN (1) CN103064664B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468379B (zh) * 2013-09-16 2017-09-26 浙江大学 基于最短逻辑距离的虚拟Hadoop集群节点选择方法及装置
CN103605662B (zh) * 2013-10-21 2017-02-22 华为技术有限公司 一种分布式计算框架参数优化方法、装置及系统
CN103593323A (zh) * 2013-11-07 2014-02-19 浪潮电子信息产业股份有限公司 一种MapReduce任务资源配置参数的机器学习方法
CN104679590B (zh) * 2013-11-27 2018-12-07 阿里巴巴集团控股有限公司 分布式计算系统中的Map优化方法及装置
CN103729246B (zh) * 2013-12-31 2017-05-03 浪潮(北京)电子信息产业有限公司 一种任务调度方法和装置
CN103823881B (zh) * 2014-03-04 2017-07-28 北京京东尚科信息技术有限公司 分布式数据库的性能优化的方法及装置
CN104298550B (zh) * 2014-10-09 2017-11-14 南通大学 一种面向Hadoop的动态调度方法
CN104503974B (zh) * 2014-11-17 2017-07-18 杭州斯凯网络科技有限公司 一种基于云平台的关系数据库自动优化方法
CN104615526A (zh) * 2014-12-05 2015-05-13 北京航空航天大学 一种大数据平台的监控系统
CN104598311A (zh) * 2015-01-26 2015-05-06 上海卓悠网络科技有限公司 一种面向Hadoop的实时作业公平调度的方法和装置
CN104750780B (zh) * 2015-03-04 2017-10-13 北京航空航天大学 一种基于统计分析的Hadoop配置参数优化方法
JP6129290B1 (ja) 2015-12-24 2017-05-17 財團法人工業技術研究院Industrial Technology Research Institute 分散計算におけるアプリケーションパラメータ設定およびシステム仕様設定を推奨する方法およびシステム
CN105610621B (zh) * 2015-12-31 2019-04-26 中国科学院深圳先进技术研究院 一种分布式系统架构任务级参数动态调整的方法及装置
CN107220247B (zh) * 2016-03-21 2019-03-01 阿里巴巴集团控股有限公司 MR计算平台中用户任务map端聚合的控制方法及装置
CN106202431B (zh) * 2016-07-13 2019-06-28 华中科技大学 一种基于机器学习的Hadoop参数自动调优方法及系统
CN106385355B (zh) * 2016-09-06 2019-07-23 北京百度网讯科技有限公司 向hadoop集群提交作业的方法、设备和系统
CN106557426B (zh) * 2016-11-30 2018-09-04 武汉斗鱼网络科技有限公司 一种用于分析Android端应用运行流畅度的方法和系统
CN108205469B (zh) * 2016-12-20 2023-12-15 华为技术有限公司 一种基于MapReduce的资源分配方法及服务器
CN108234177A (zh) * 2016-12-21 2018-06-29 深圳先进技术研究院 一种HBase配置参数自动调优方法及装置、用户设备
CN109815105A (zh) * 2017-11-20 2019-05-28 北京京东尚科信息技术有限公司 基于Btrace的应用程序测试方法和装置
CN108228258B (zh) * 2017-12-05 2020-06-19 华南理工大学 一种大数据云平台下多环境配置的数据采集方法
CN108733639B (zh) * 2018-04-09 2023-08-01 中国平安人寿保险股份有限公司 一种配置参数调整方法、装置、终端设备及存储介质
CN111159004A (zh) * 2018-11-07 2020-05-15 中移(苏州)软件技术有限公司 一种Hadoop集群仿真测试方法、装置及存储介质
CN113032367A (zh) * 2021-03-24 2021-06-25 安徽大学 面向动态负载场景的大数据系统跨层配置参数协同调优方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102759984A (zh) * 2012-06-13 2012-10-31 上海交通大学 虚拟化服务器集群的电源和性能管理系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102759984A (zh) * 2012-06-13 2012-10-31 上海交通大学 虚拟化服务器集群的电源和性能管理系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Hadoop集群参数的自动调优;王皎等;《电脑知识与技术》;20120430;第8卷(第12期);第2768-2772页 *
Hadoop集群性能优化技术研究;辛大欣等;《电脑知识与技术》;20110831;第7卷(第22期);第5484-5486页 *
Towards Automatic Optimization of MapReduce Programs;Shivnath Babu;《SoCC》;20101231;第137-142页 *

Also Published As

Publication number Publication date
CN103064664A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN103064664B (zh) 一种基于性能预估的Hadoop参数自动优化方法和系统
US10572285B2 (en) Method and apparatus for elastically scaling virtual machine cluster
CN103309946B (zh) 多媒体文件处理方法、装置及系统
CN103778148B (zh) Hadoop分布式文件系统数据文件的生命周期管理方法和设备
EP3413212A1 (en) Random forest model training method, electronic apparatus and storage medium
CN104090889A (zh) 数据处理方法及系统
CN106503276A (zh) 一种用于实时监控系统的时间序列数据库的方法与装置
CN103024825A (zh) 终端多应用间网络资源分配方法及其设备
CN103605662A (zh) 一种分布式计算框架参数优化方法、装置及系统
CN103903086A (zh) 一种基于业务模型驱动的管理信息系统开发方法及系统
CN103810152A (zh) 可视化公式编辑器
CN105205154A (zh) 数据迁移方法以及装置
CN104199912B (zh) 一种任务处理的方法及装置
CN107798120B (zh) 一种数据转换方法及装置
CN104834557A (zh) 一种基于Hadoop的数据分析方法
CN105573774B (zh) 应用程序参数管理及配置方法
CN109510852A (zh) 灰度发布的方法及装置
CN103699534A (zh) 系统目录中数据对象的显示方法及装置
CN104346378B (zh) 一种实现复杂数据处理的方法、装置及系统
CN102819434B (zh) 一种电力信息通信调度报表展现方法与装置
CN104320460A (zh) 一种大数据处理方法
CN102685266B (zh) 区文件签名方法及系统
CN103093322A (zh) 即席分析业务数据的系统和方法
CN103425490A (zh) 基于crm系统中运行对象数据的管理方法
CN102855278B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150722

Termination date: 20211128

CF01 Termination of patent right due to non-payment of annual fee