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

技术编号:8625882 阅读:239 留言:0更新日期:2013-04-25 22:55
本发明专利技术公开了一种基于性能预估的Hadoop参数自动优化方法,包括:统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件,获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t,根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。本发明专利技术能够解决现有方法中存在的高成本、低效率、高门槛、以及增加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参数自动优化方法,其特征在于,包括以下步骤:(1)统计分析用户在Hadoop集群上运行的应用程序的运行特征,以生成输出文件;(2)根据输出文件预估Hadoop应用程序在当前参数配置方案下的性能,具体包括以下子步骤:(2?1)获取输出文件,并提取输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案;(2?2)根据输出文件中各个阶段的运行时间、处理和传输的数据、为运行该Hadoop应用程序分配的资源、以及该Hadoop应用程序对应的参数配置方案,并采用MapReduce模拟技术来计算Hadoop应用程序的总运行时间t;(3)根据预估的Hadoop应用程序在当前参数配置方案下的性能并采用遗传算法来调节Hadoop应用程序对应的参数配置方案。

【技术特征摘要】
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]按照从小到大的顺序进行...

【专利技术属性】
技术研发人员:金海石宣化吴松曾林西
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1