一种基于混合元启发式算法的Hadoop负载均衡任务调度方法技术

技术编号:18237581 阅读:49 留言:0更新日期:2018-06-17 00:43
本发明专利技术涉及一种基于混合元启发式算法的Hadoop负载均衡任务调度方法,建立资源槽压力模型,该模型以使集群中所有的Slave节点处理任务的计算压力处于同一水平线为目标,采用基于模拟退火和粒子群优化的混合元启发式算法进行最优任务调度方案的求解,实现Hadoop集群环境下的负载均衡任务调度。进一步通过高性能和广泛可移植性的消息传递接口MPICH(MPI over CHameleon)实现算法的并行编程,将启发式优化算法的计算过程转移至额外的计算节点,并通过多种群同时求解,减轻Master节点的计算压力,提升单位时间内最优任务调度方案的求解能力。本发明专利技术能够对Hadoop集群的计算资源进行整体分配,使集群的节点负载均衡,避免节点计算资源浪费,最大化数据中心的设备投入的利润。 1

A Hadoop based load balancing task scheduling method based on hybrid meta heuristic algorithm

The invention relates to a Hadoop load balancing task scheduling method based on hybrid meta heuristic algorithm, and establishes a resource trough pressure model. This model aims at making the computing pressure of all Slave nodes in the cluster at the same horizontal line as the target, and adopts a hybrid meta heuristic algorithm based on simulated annealing and particle swarm optimization. The optimal task scheduling solution is implemented to achieve load balancing task scheduling in Hadoop cluster environment. Further through high performance and widely portable message transfer interface MPICH (MPI over CHameleon), the parallel programming of the algorithm is implemented. The calculation process of the heuristic optimization algorithm is transferred to the additional computing node, and the calculation pressure of Master nodes is reduced and the optimal task within the unit time is improved by solving multiple groups at the same time. The ability to solve the scheduling scheme. The invention can allocate the computing resources of the Hadoop cluster as a whole, balancing the nodes of the cluster, avoiding the waste of the node computing resources and maximizing the profit of the equipment invested in the data center. One

【技术实现步骤摘要】
一种基于混合元启发式算法的Hadoop负载均衡任务调度方法
本专利技术涉及HadoopMapReduce结构下的任务调度领域。更具体的是,利用粒子群算法和基于模拟退火和粒子群优化算法的混合元启发式算法,以及MPICH并行编程方法,使集群负载均衡为目标的Hadoop任务调度算法。
技术介绍
随着移动智能设备的高速发展,信息化时代的发展变得越来越迅捷,与之同时而来的便是随着用户对网络的使用,随之主动或被动产生的海量数据,这些数据通过传统的统计或计算方法通常是无法挖掘出其中的价值,然而一旦能挖掘出这些数据背后的潜在价值,便能为企业和政府带来巨大的收益,例如淘宝网便能通过对用户商品浏览记录的分析来判断用户的商品喜好和需求,同时定向进行首页商品推送,从而达到商品导购的目的;视频音乐资源服务商能够从用户历史使用数据中总结出用户喜爱,通过定向推荐来提升自己的服务能力,从而使用户获得更好的用户体验。但是想要对这些大数据进行处理,传统的计算方式已经不能够满足需求,企业和政府机构需要计算能力强大的计算机集群才能达到自己的目的。然而建设维护一个数据中心的成本是极其昂贵的,对于绝大多数的中小型企业来说自身并没有能力去搭建一个规模足够庞大的数据中心来满足自身的业务需求,此时按需计价的云服务模式为企业提供了极大的帮助。通过购买云数据中心的服务,企业可以在短短几个小时的时间内部署成百上千的服务器集群,而使用这些云计算资源所耗费的成本同传统的数据中心建设相比,显得十分廉价与便捷,同时随着后期的业务变化,用户能够积极便捷的实现云计算资源的变化与调整,实时的满足自身的业务需求。同时云数据中心的发展也为大型跨国公司提供了便利,公司可以通过在全球不同地区的云数据中心购买服务,这样不仅能够公司节省大量的建设传统数据中心所带来的人力物力成本,同时也能够为跨国企业分布在世界各地的用户带来更好的响应速度,提升用户体验。但是对于数据中心来说,能够尽可能使自身的计算能力得到更充分的利用,从而提供更高效的计算服务,进而在相同时间里更好更快的处理更多的用户任务,是使数据中心获得更大收益的重要途径。Hadoop是一个能够对大量数据进行分布式处理的分布式系统基础架构,由于其MapReduce分布式处理框架原理简单、性能优越,目前被许多数据中心使用来进行大数据的计算处理。而如何使Hadoop集群真正工作起来的一个重要环节就是任务调度。任务调度其实就是通过一定的任务调度算法将集群计算资源进行分配,从而使待处理的任务能够得到足够的资源进行处理,一个好的任务调度算法不仅要能使任务处理的更快(也就是使用户得到更快的效应速度),同时也要是集群中每一台机器都发挥出自己的计算能力,因为对于数据中心中运行的机器来说,一般而言工作五年后就需要进行更换,如果机器长期处于闲置状态,或机器的计算能力利用不够,这对于数据中心来说都是巨大的损失。传统的任务调度算法分为两类,一种是实时任务调度算法,另一种是启发式任务调度算法。实时调度算法的核心思想是实时的对作业进行调度处理,给作业分配所需的计算资源,它具有响应时间短,任务调度造成的资源开销很小的优点,但是由于实时调度算法无法对集群中所有机器进行全局的资源分配,容易造成集群负载不均衡的弊端,长时间积累下来,就会对集群的计算资源造成很大的浪费。启发式任务调度算法可以将集群中的所有机器的资源综合考虑,在给定解空间(受到集群具体资源的限制)内以负载均衡或最快处理速度为目标进行最优求解,这样就能够实现全局的资源分配,从而使集群的计算资源得到更好的利用。但是由于集群中的节点数目往往十分庞大,使用启发式算法进行求解时,求解过程十分繁琐,会造成不小的额外开销,而在传统的Hadoop任务调度模式下,启发式任务调度会给主节点(Master节点,Hadoop中负责作业的调度分发工作)造成沉重的负担,从而影响集群的工作稳定性,同时启发式算法如粒子群、蚁群、模拟退火等都容易陷入局部最优的问题,实际调度过程中发挥的性能也并不稳定。本专利技术从Hadoop采用启发式任务调度算法的这些不足出发,基于MapRedeuce分布式处理框架、MPICH并行处理算法、粒子群优化算法、粒子群优化算法与模拟退火优化算法相结合的混合启发式算法等,提出了一种以提升集群资源利用率为目标的任务调度方法。
技术实现思路
本专利技术的目的在于提供一种基于Hadoop架构下的提高分布式集群计算资源利用率为目标的任务调度方法,综合考虑了启发式算法自身的容易陷入局部最优的缺点和将启发式算法用于Hadoop任务调度的不适应之处,能够根据集群中各个机器的计算能力高低分别分配相适应数量的待处理任务,使集群中每台机器的待处理任务的计算压力处于同一水平线,从而平衡集群中的任务处理节点(Slave节点)的负载,提高集群的计算资源利用率实现节省成本并提高利润,同时通过多粒子群同时寻优、基于模拟退火的粒子群优化算法等启发式优化算法同时使用,提高了任务调度算法跳出局部最优点的能力,并且使用MPICH并行编程方法,将启发式算法的求解过程分担到了若干台机器中去执行,避免了增添Hadoop集群中的Master节点的计算压力,提高了集群的稳定性。为达到上述目的,本专利技术采用下述技术方案:为了实现本专利技术中的根据任务处理节点之间的计算资源差异分别分配相应数量的待处理任务,实现任务处理节点之间的计算压力处于同一水平线,基于MapReduce分布式框架下的资源槽的概念:资源槽Slot,传统的MapReduce分布式处理框架节点资源的划分单位,节点会根据自身的计算能力和内存总量确定出自身的Slots总量,而Slot又因为MapReduce框架的特点,还有MapSlots和ReduceSlots的区别,MapSlots专门用于处理Map子任务,ReduceSlots专用于处理Reduce子任务。而当Hadoop处理作业时,作业会预先向JobTracker申请Slots资源,根据这一特性,本专利技术建立了资源槽压力模型。为了实现本专利技术的将启发式算法应用于Hadoop的任务调度中,同时不给Master节点增加额外的计算负担,并且提高算法跳出局部最优的能力,本专利技术提出了使用MPICH并行编程方法,将任务调度算法的演算过程置于额外的计算节点执行,同时采用多粒子群和基于模拟退火算法的粒子群等粒子群同时寻优,并采用在规定时间,寻优结果最佳的种群的演算结果用于实际的任务分配,从而既提高了算法跳出局部最优解的能力,也避免了给Master节点增加负担。综上所述,一种基于混合元启发式算法的Hadoop负载均衡任务调度方法,包括如下步骤:S1、针对平衡任务处理节点的处理任务的计算压力,根据资源槽原理,建立资源槽压力模型;S2、采用粒子群优化算法的求解资源槽压力模型;S3、采用基于模拟退火与粒子群优化算法的混合元启发式优化算法求解资源槽压力模型;S4、采用MPICH并行编程方法,转移启发式优化算法的复杂计算过程于额外计算节点,通过同时运行多个粒子群,让多个种群找到更多的局部最优解,然后提取其中效果最好的解用于任务调度。作为优选,所述资源槽压力模型的优化目标为最小化Hadoop集群Slave节点计算压力间的方差Variance,所述的资源槽压力模型为:其中,Pressure本文档来自技高网
...
一种基于混合元启发式算法的Hadoop负载均衡任务调度方法

【技术保护点】
1.一种基于混合元启发式算法的Hadoop负载均衡任务调度方法,其特征在于,包括如

【技术特征摘要】
1.一种基于混合元启发式算法的Hadoop负载均衡任务调度方法,其特征在于,包括如下步骤:S1、针对平衡任务处理节点的处理任务的计算压力,根据资源槽原理,建立资源槽压力模型;S2、采用粒子群优化算法的求解资源槽压力模型;S3、采用基于模拟退火与粒子群优化算法的混合元启发式优化算法求解资源槽压力模型;S4、采用MPICH并行编程方法,转移启发式优化算法的复杂计算过程于额外计算节点,通过同时运行多个粒子群,让多个种群找到更多的局部最优解,然后提取其中效果最好的解用于任务调度。2.根据权利要求1所述的基于混合元启发式算法的Hadoop负载均衡任务调度方法,其特征在于,所述资源槽压力模型的优化目标为最小化Hadoop集群Slave节点计算压力间的方差Variance,所述的资源槽压力模型为:其中,Pressure表示Slave节点时间待处理的m个Map子任务所需的Map资源槽总和相较于该节点的Map资源槽总数M所造成待处理任务计算压力;ti表示第i个待处理任务所需的Map资源槽数量;Average表示集群中所有Slave节点待处理任务计算压力的平均值;Mi表示集群中第i个Slave节点的Map资源槽数量;S表示集群中Slave节点的数量;Variance表示集群中各Slave节点待处理任务计算压力间的方差。3.根据权利要求2所述的基于混合元启发式算法的Hadoop负载均衡任务调度方法,其特征在于根据所建立的资源槽压力模型,将任务调度编码入了粒子群优化算法的粒子坐标中,同时设计的目标函数能够从粒子坐标中计算出当前粒子坐标表示的任务调度方案下,集群的Slave节点计算压力方差。所述的基于资源槽压力模型的粒子群优化算法具体参数与公式如下:Xi(x1,x2,x3,...,xm);Vi(v1,v2,v3,...,vm);Vi'=w*Vi+c1*r1*(pBesti-Xi)+c2*r2*(gBest-Xi);Xi′=Xi+Vi′;其中,Xi(x1,x2,x3,...,xm)表示第i个粒子在解空间中的坐标;xm表示第m个待处理任务被分配到第xm个Slave节点上运行;Vi(v1,v2,v3,...,vm)表示第i个粒子的速度;Vi′表示第i个粒子根据上一轮迭代的学习经验更新后的速度w为惯性权重;c1和c2为学习因子;r1和r2为[0,1]上的随机数;pBesti为第i个粒子的个体最优点;gBest为种群的最优点;Xi'表示第i个粒子经过一轮迭代后的坐标;pBesti'为第i个粒子一轮迭代更新后的个体最优点;gBest'为一轮迭代更新后的种群最优点;f(Xi)为粒子群优化算法的目标函数,该函数的功能为根据例子坐标X...

【专利技术属性】
技术研发人员:毕敬程煜东乔俊飞
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

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

1