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

文档序号:6382513阅读:175来源:国知局
专利名称:一种基于性能预估的Hadoop参数自动优化方法和系统的制作方法
技术领域
本发明属于分布式计算模型领域,更具体地,涉及一种基于性能预估的Hadoop参数自动优化方法和系统。
背景技术
随着云计算的兴起,Mapreduce编程模型作为一种简化大规模数据处理的重要手段得到越来越广泛的应用。Hadoop是Mapreduce的一个开源实现,是一个能够对大量数据进行分布式处理的软件框架,通过它用户可以在不了解分布式底层细节的情况下很方便的开发分布式程序。Hadoop中共有180个以上的参数用以控制应用程序的运行,用户可以根据自己的需要来调整这些参数的值,大量的实验表明Hadoop系统参数的设置对应用程序的性能有着很大的影响。现有的Hadoop参数优化方法主要有两种(I)是在实际的Hadoop集群上运行Hadoop应用程序,然后根据以前的经验总结以及对Hadoop系统本身的理解手动优化Hadoop参数,并通过实验来验证参数优化的效果;(2)是通过修改Hadoop本身的代码,将参数优化的功能模块加入Hadoop里面来达到Hadoop参数自动优化的目的,如发表在 2010 年 SoCC 上的论文Towards automatic optimization of MapReduce programs,借鉴了数据库中的查询优化思想,提出一种消除“调整钮”的方法,通过代码重写或者在系统中实现参数自动调整控制器的方法,将某些参数设置的工作交给Hadoop系统来完成。然而现有的参数优化方法存在以下问题(I)高成本、低效率在第一种Hadoop参数优化方法中,需要在实际的Hadoop集群上多次运行Hadoop应用程序,会占用大量的系统资源,且每次优化参数进行测试都需要很长的时间;(2)高门槛使用第一种方法进行Hadoop参数优化,需要用户本身对Hadoop的底层实现原理以及Hadoop各个参数的作用有所了解,以及具备大量的Hadoop参数优化经验,以上这两点都是大量普通Hadoop用户所缺乏的。(3)增加了 Hadoop本身代码的复杂性方法(2)需要对Hadoop本身的代码进行修改,以及添加Hadoop参数调优的功能模块,这使得Hadoop系统更加难以维护。

发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于性能预估的Hadoop参数自动优化方法,旨在能够解决现有方法中存在的高成本、低效率、高门槛、以及Hadoop代码复杂的问题。为实现上述目的,本发明提供了一种基于性能预估的Hadoop参数自动优化方法,包括以下步骤(I)统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;(2)根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,具体包括以下子步骤(2-1)获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案;(2-2)根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t ;(3)根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。步骤(I)具体为,首先,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取相应的数据,并将跟踪到的数据进行统计分析,以生成XML格式的输出文件存入用户指定的目录中,用于可视化的展示Hadoop应用程序运行细节,然后,将为运行该Hadoop应用程序分配的资源,以及该Hadoop应用程序对应的参数配置方案追加到输出文件中。应用程序的运行特征包括各个阶段的运行时间,以及处理和传输的数据。步骤(2)具体是采用以下公式t = Fj(f, d, P)其中F表示为运行该Hadoop应用程序分配的资源,< 表示输出文件,多表示该Hadoop应用程序对应的 参 数配 置方案,&是Hadoop应用程序的运行时间关于》、?、d三个变量的一个复杂函数。步骤(3)包括以下子步骤(3-1)接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件;(3-2)根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中η为正整数;(3-3)使用步骤(2)的方法预估Hadoop应用程序在3*η个参数配置方案的运行时间 Iit1, t2, · · · t3n];(3-4)将Hadoop应用程序在3*n个参数配置方案的运行时间B1, t2,…t3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X,并删除排在后面的2*η个参数配置方案;(3-5)利用遗传算法将前η个运行时间值对应的参数配置方案变为3*η个参数配
置方案;(3-6)将Hadoop应用程序在3*η个参数配置方案的运行时间[t,t,2,· · · t,3η]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X’,并删除排在后面的2*η个参数配置方案;(3-7)判断χ和X’差的绝对值是否不小于某一阈值,若不小于阈值,则返回步骤(3-5),否则过程结束。阈值的取值为χ的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个参数配置方案,其中η为正整数,预估子模块用于使用性能预估模块预估Hadoop应用程序在3*η个参数配置方案的运行时间[t1,t2,…t3n],第一排序子模块用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t1; t2,. . . t3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X,并删除排在后面的2*η个参数配置方案,变异子模块用于利用遗传算法将前n个运行时间值对应的参数配置方案变为3*η个参数配置方案,第二排序子模块用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t’i,t’2,. . . t’3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X’,并删除排在后面的2*n个参数配置方案,判断子模块用于判断x和x’差的绝对值是否不小于某一阈值,若不小于阈值,则返回变异子模块,否则过程结束。通过本发明所构思的以上技术方案,与现有技术相比,本系统具有以下的有益效果:(I)高效率和低成本因为采用了 Hadoop集群模拟子模块,使用MapReduce模拟技术来预估Hadoop应用程序的运行时间,而MapReduce模拟器只需要在单机环境下就能运行,所占用的系统资源非常小,且获得结果的速度快所以具有高效率和低成本;(2)使用方便因为采用了参数调整模块,使用遗传算法来自动生成和选择Hadoop参数配置方案,不需要用户手动修改,不仅减少了用户的工作量,同时也降低了使用的门槛,极大地方便了用户;(3)可扩展因为采用了 Hadoop应用程序分析模块,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取Hadoop应用程序的运行数据,不需要对Hadoop本身的代码进行修改,不仅仅适用于少数几台机器组成的Hadoop集群,对含有大量机器的集群同样适用,而且新增加一台机器后只需要修改系统的几个输入文件,系统其它部分不需要做任何修改,具有很高的可扩展性。


图1是本发明基于性能预估的Hadoop参数自动优化方法的流程图。图2是本发明方法中步骤(3)的细化流程图。图3是本发明基于性能预估的Hadoop参数自动优化系统的结构示意图。图4是本发明输入子模块和Hadoop集群模拟子模块的示意框图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,本发明基于性能预估的Hadoop参数自动优化方法包括以下步骤(I)统计分析用户在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 ;具体是采用以下公式/. = / (/'_,d, P)其中?表示为运行该Hadoop应用程序分配的资源,^!表示输出文件,多表示该Hadoop应用程序对应的参数配置方案,匕是Hadoop应用程序的运行时间关于声、P, 3三个变量的一个复杂函数,为了提高性能预估的精度,本发明使用Hadoop集群模拟器替代Fj的功能;(3)根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案,具体包括以下子步骤(如图2所示)(3-1)接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件;(3-2)根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中η为正整数;(3-3)使用步骤(2)的方法预估Hadoop应用程序在3*η个参数配置方案的运行时间 Iit1, t2, · · · t3n];(3-4)将Hadoop应用程序在3*n个参数配置方案的运行时间B1, t2,…t3n]按照从小到大的顺序进行排序,并选出前η个运`行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X,并删除排在后面的2*η个参数配置方案;(3-5)利用遗传算法将前η个运行时间值对应的参数配置方案变为3*η个参数配
置方案;(3-6)将Hadoop应用程序在3*η个参数配置方案的运行时间[t,t,2,· · · t,3η]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X’,并删除排在后面的2*η个参数配置方案;(3-7)判断χ和X’差的绝对值是否不小于某一阈值,若不小于阈值,则返回步骤(3-5),否则过程结束;在本实施方式中,阈值的取值为χ的1%至5%。如图3所示,本发明基于性能预估的Hadoop参数自动优化系统包括Hadoop应用程序分析模块1、性能预估模块2、以及参数调整模块3。Hadoop应用程序分析模块I用于统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;具体而言,应用程序的运行特征包括各个阶段的运行时间,以及处理和传输的数据;首先,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取相应的数据,并将跟踪到的数据进行统计分析,以生成XML格式的输出文件存入用户指定的目录中,用于可视化的展示Hadoop应用程序运行细节,然后,将为运行该Hadoop应用程序分配的资源,以及该Hadoop应用程序对应的参数配置方案追加到输出文件中。性能预估模块2用于根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能。性能预估模块2包括输入子模块21和Hadoop集群模拟子模块22。输入子模块21获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案。如图4所示,输入子模块21包括作业描述1A、数据分布1B、网络拓扑IC和集群机器ID这四个文件。其中,作业描述IA是Hadoop应用程序分析模块的输出文件,里面含有该程序在Hadoop集群上运行的各种统计信息;数据分布IB文件描述了输入数据在Hadoop集群中的分布;网络拓扑IC和集群机器ID分别包含Hadoop集群的网络拓扑结构和Hadoop集群中机器的性能参数信息。用户提交这四个描述文件后,输入子模块21对这些文件进行相应处理,提取出模拟器所需的信息用于预估Hadoop应用程序在集群上的运行性能。用户提交文件后,输入子模块21对这些文件进行处理,提取文件中的信息作为Hadoop集群模拟器的输入数据。Hadoop集群模拟子模块22用于根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t ;具体是采用以下公式t - /■', (P, tU p)其中F表示为运行该Hadoop应用程序分配的资源,^表示输出文件,戶表示该Hadoop应用程序对应的参数配置方案,Fj是Hadoop应用程序的运行时间关于pJ三个变量的一个复杂函数,为了提高性能预估的精度,本发明使用Hadoop集群模拟器替代Fj的功能。如图4所示,Hadoop集群模拟子模块22包括MapReduce模拟2A、集群网络模拟2B、磁盘I/O模拟2C。MapReduce 2A模块提供了一个对MapReduce作业细粒度的模拟,结合代价模型估算Hadoop应用程序运行时每个阶段的运行时间,进而估算出程序总的运行时间;集群网络模拟2B模块,用于模拟Hadoop应用程序执行过程中各个进程之间的通信,包括节点之间的数据传输以及节点内部不同进程之间的 通信;磁盘I/O模拟2C模块,用于模拟Hadoop应用程序执行过程中的磁盘1/0,包括从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个参数配置方案,其中η为正整数。预估子模块33用于使用性能预估模块2预估Hadoop应用程序在3*η个参数配置方案的运行时间[t1; t2,. . . t3n]。第一排序子模块34用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t1; t2,…t3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X,并删除排在后面的2*η个参数配置方案。变异子模块35用于利用遗传算法将前η个运行时间值对应的参数配置方案变为3*η个参数配置方案。第二排序子模块36用于将Hadoop应用程序在3*η个参数配置方案的运行时间[t’i,t’2,. . . t’3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X’,并删除排在后面的2*η个参数配置方案。判断子模块37用于判断χ和X’差的绝对值是否不小于某一阈值,若不小于阈值,则返回变异子模块35,否则过程结束。实例为了验证本发明系统的可行性和有效性,在真实环境下配置本发明系统,对Hadoop典型应用集合进行实验。本发明的Hadoop集群基本硬件和软件配置如表I所示
权利要求
1.一种基于性能预估的Hadoop参数自动优化方法,其特征在于,包括以下步骤 (O统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件; (2)根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,具体包括以下子步骤 (2-1)获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案; (2-2)根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t ; (3)根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。
2.根据权利要求1所述的Hadoop参数自动优化方法,其特征在于,步骤(I)具体为,首先,使用btrace程序动态跟踪在Hadoop集群中运行的java程序,以获取相应的数据,并将跟踪到的数据进行统计分析,以生成XML格式的输出文件存入用户指定的目录中,用于可视化的展示Hadoop应用程序运行细节,然后,将为运行该Hadoop应用程序分配的资源,以及该Hadoop应用程序对应的参数配置方案追加到输出文件中。
3.根据权利要求1所述的Hadoop参数自动优化方法,其特征在于,应用程序的运行特征包括各个阶段的运行时间,以及处理和传输的数据。
4.根据权利要求1所述的Hadoop参数自动优化方法,其特征在于,步骤(2)具体是采用以下公式 t=fj(r,d,p) 其中?表示为运行该Hadoop应用程序分配的资源,J表示输出文件,#表示该Hadoop应用程序对应的参数配置方案,匕是Hadoop应用程序的运行时间关于]5、F、J三个变量的一个复杂函数。
5.根据权利要求1所述的Hadoop参数自动优化方法,其特征在于,步骤(3)包括以下子步骤 (3-1)接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件; (3-2)根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中η为正整数; (3-3)使用步骤(2)的方法预估Hadoop应用程序在3*η个参数配置方案的运行时间[t1, t2,…t3n]; (3-4)将Hadoop应用程序在3*n个参数配置方案的运行时间[tp t2,…t3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X,并删除排在后面的2*η个参数配置方案; (3-5)利用遗传算法将前η个运行时间值对应的参数配置方案变为3*η个参数配置方案; (3-6)将Hadoop应用程序在3*η个参数配置方案的运行时间[t'1, t'2,· · · t'3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X’,并删除排在后面的2*η个参数配置方案; (3-7)判断X和X’差的绝对值是否不小于某一阈值,若不小于阈值,则返回步骤(3-5),否则过程结束。
6.根据权利要求5所述的Hadoop参数自动优化方法,其特征在于,阈值的取值为χ的1% 至 5% ο
7.一种基于性能预估的Hadoop参数自动优化系统,其特征在于, 包括Hadoop应用程序分析模块、性能预估模块、以及参数调整模块; Hadoop应用程序分析模块用于统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件; 性能预估模块用于根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,并包括输入子模块和Hadoop集群模拟子模块; 输入子模块用于获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案; Hadoop集群模拟子模块用于根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t ; 参数调整模块用于根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。
8.根据权利要求7所述的Hadoop参数自动优化系统,其特征在于, 参数调整模块包括接收子模块、生成子模块、预估子模块、第一排序子模块、变异子模块、第二排序子模块以及判断子模块; 接收子模块用于接收用户提交的输入文件,包括作业描述文件、数据分布文件、网络拓扑文件和Hadoop集群机器文件; 生成子模块用于根据用户提交的输入文件生成初始的参数配置方案集,其含有3*n个参数配置方案,其中η为正整数; 预估子模块用于使用性能预估模块预估Hadoop应用程序在3*η个参数配置方案的运行时间[t1; t2, . . . t3n]; 第一排序子模块用于将Hadoop应用程序在3*n个参数配置方案的运行时间[t1; t2,. . . t3n]按照从小到大的顺序进行排序,并选出前η个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X,并删除排在后面的2*η个参数配置方案; 变异子模块用于利用遗传算法将前η个运行时间值对应的参数配置方案变为3*η个参数配置方案;第二排序子模块用于将Hadoop应用程序在3*η个参数配置方案的运行时间[t’ i,t’2,. . . t’3n]按照从小到大的顺序进行排序,并选出前n个运行时间值以及对应的参数配置方案,保存其中运行时间值最小的一个X’,并删除排在后面的2*η个参数配置方案;判断子模块用于判断χ和X’差的绝对值是否不小于某一阈值,若不小于阈值,则返回变异子模块,否则过程结束。
全文摘要
本发明公开了一种基于性能预估的Hadoop参数自动优化方法,包括统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件,获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t,根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。本发明能够解决现有方法中存在的高成本、低效率、高门槛、以及增加Hadoop代码复杂性的问题。
文档编号G06F9/44GK103064664SQ20121049496
公开日2013年4月24日 申请日期2012年11月28日 优先权日2012年11月28日
发明者金海 , 石宣化, 吴松, 曾林西 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1