基于服务等级协议的yarn资源分配和节能调度方法及系统的制作方法

文档序号:9274605阅读:512来源:国知局
基于服务等级协议的yarn资源分配和节能调度方法及系统的制作方法
【技术领域】
[0001] 本发明属于云计算技术领域,尤其涉及一种基于服务等级协议的YARN(Yet Another Resource Negotiator)资源分配和节能调度方法及系统。
【背景技术】
[0002] 随着云计算的兴起,越来越多的公司开始使用MapReduce和Apache Hadoop来提 供云计算服务。MapReduce是谷歌提出的一种编程模型,通常用于大规模数据集的并行运 算。这个模型可以使任务在大型集群上自动并行化,因此特别适用于大数据的分析与处理。 Hadoop是一个实现了包括分布式文件系统(HDFS)和MapReduce模型在内的开源的分布式 并行编程框架,这个框架可以部署在普通的商业硬件上,具有低成本、高有效和高容错等特 性。
[0003] 虽然Hadoop已成为当前最流行的大数据分析系统,但是它在可扩展性、可靠性和 资源利用等方面还存在一定的局限性。为了克服这些问题,Apache将Hadoop 1.0中的资 源管理功能抽象成一个独立的通用系统YARN。由于YARN的通用性,Hadoop 2. 0的目标已 经不再局限于支持MapReduce -种计算框架,而是朝着对多种框架(如Storm、Spark和S4 等)进行统一管理的方向发展。
[0004] 在云计算环境下,云计算服务供应商必须尽可能地满足应用程序的服务等级协议 (SLA)中指定的截止时间。此外,高性能计算集群的不断增加和大规模部署带来了巨大的资 源和能源消耗,所以在保证SLA的前提下,服务商们还需要考虑资源和能源的成本问题。
[0005] YARN提供了三种可用的资源调度器,分别是FIF0(First In First Out)、 Capacity Scheduler和Fair ScheduleroCapacity Scheduler是Yahoo !开发的多用户调 度器,它以队列为单位划分资源,每个队列可设定一定比例的资源最低保证和使用上限,同 时,每个用户也可设定一定的资源使用上限以防止资源滥用。Fair Scheduler是Facebook 开发的多用户调度器,它同样添加了多层级别的资源限制条件以更好地让多用户共享一个 Hadoop集群。此外,Fair Scheduler提供了更多样化的调度策略,它允许为每个队列单独 配置调度策略,分别是先来先服务、公平调度和主资源公平调度。然而,这三种资源调度器 都不能保证应用程序的完成时间不超过截止时间,也没有考虑基于SLA的资源分配和节能 调度问题。事实上,在共享的云计算环境下,没有一种资源调度器可以准确判断出满足应用 程序SLA的最少硬件资源,这是由数据本地化、网络带宽、访问延迟等因素的不确定性造成 的。
[0006]目前,云计算环境中的节能机制有多种不同的分类标准。其中,按照功耗管理的不 同方式可以分为动态功耗管理技术和静态功耗管理技术两类。按照降低能耗阶段的不同可 分为关闭/开启技术、动态电压频率调整技术以及虚拟机技术三类,前者主要降低空闲能 耗,后两者均使用了动态功耗管理技术来降低任务的执行能耗。此外,基于主机关闭/开启 的节能策略又可以分为三类:随机式策略、超时式策略和预测式策略。利用这些节能机制, 有些研宄提出了针对分布式系统或第一代MapReduce (MRvl)模型的实时和/或节能调度 方案。然而由于系统结构和资源管理机制的差异,这些现有的调度策略有的并不能适用于 YARN,其他的策略则会导致次优的调度和资源分配决定。
[0007] 鉴于上述研宄背景,目前亟需一种基于服务等级协议的资源分配和节能调度方案 来解决YARN环境中存在的两大挑战:
[0008] -是在共享的云计算环境下如何根据服务等级协议SLA (Service Level Agreement)自动调整和控制每个程序的资源分配;
[0009] 二是如何最大限度地降低整个集群系统的能耗。

【发明内容】

[0010] 本发明的目的就是为了解决上述问题,提供一种基于服务等级协议的YARN资源 分配和节能调度方法及系统,它具有(1)在Hadoop 2.0集群中,根据每个MapReduce程序 的截止时间自动为其分配合适的资源;(2)在保证SLA的前提下,最大限度地降低整个集群 系统的能耗的优点。本发明通过对MapReduce程序进行预分析得到的性能指标来确定资源 分配,并结合动态电压频率调整0VFS)技术充分利用任务的松弛时间来降低Hadoop集群 的能耗。
[0011] 为了实现上述目的,本发明采用如下技术方案:
[0012] 基于服务等级协议的YARN资源分配和节能调度方法,包括如下步骤:
[0013] 步骤(1):在提交MapReduce程序前,对每个MapReduce程序进行预分析,SP从 MapReduce程序过去的运行日志中解析出所需的性能指标;
[0014] 步骤⑵:在提交MapReduce程序后,根据步骤⑴解析出的性能指标,计算每个 MapReduce程序最差执行情况下任务的最低并行度;
[0015] 步骤(3):根据每个MapReduce程序各自的最低并行度,为每个MapReduce程序分 配不同的资源容器;
[0016] 步骤(4):监控每个MapReduce程序的任务完成情况,并据此得出剩余任务的理想 执行时间和预期执行频率;
[0017] 步骤(5):根据剩余任务的预期执行频率,利用CPUfreq子系统动态调节CPU的电 压和频率,从而达到节能的目的。
[0018] 所述步骤⑴的性能指标包括:
[0019] 程序初始化最长用时、map任务的平均执行时间、map任务的最长执行时间、首次 shuffle的最长持续时间、shuffle阶段的平均持续时间、shuffle阶段的最长持续时间、 reduce任务的平均执行时间和reduce任务的最长执行时间。
[0020] 每个MapReduce程序包括两种子任务:map子任务和reduce子任务。
[0021] Map子任务负责读取输入的数据块并产生中间结果,中间结果存在本地磁盘中并 成为reduce子任的输入数据。
[0022] Reduce子任务负责合并相关的中间结果并将生成的最终结果写入HDFS。
[0023] 所述步骤⑴中:
[0024] 如果所述MapReduce程序从未在集群中运行过,则在一个设定的数据集上预先执 行MapReduce程序来解析出所需的性能指标。
[0025] 解析出所得的性能指标均独立于分配给所述MapReduce程序的资源量,并且反映 了 MapReduce程序所有阶段的信息。
[0026] 此外,为了对频率进行更加精确地调整,解析时还需要提取任务的性能和运行频 率之间的关系。
[0027] 所述步骤(2)的具体步骤为:
[0028] 步骤(201):在提交MapReduce程序时,将MapReduce程序的性能指标提交到资源 管理器中;
[0029] 步骤(202):当MapReduce程序加入作业队列后,根据MapReduce程序的性能指标 利用边界定理预估MapReduce程序在最差执行情况下的完成时间;
[0030] 步骤(203):根据步骤(202)中得出的完成时间的上限,计算出程序map和reduce 两阶段任务的最低并行度。
[0031] 所述步骤(202)的最差执行情况下的完成时间:T/p的计算方法为:
[0037] 其中,^表示map任务的最低并行度,P/表示reduce任务的最低并行度,Mj表示
[0032]
[0033]
[0034]
[0035]
[0036] map任务的数量,Mavg表示map任务的平均执行时间,R j表示reduce任务的数量,表示 shuffle阶段的平均持续时间,Ravg表示reduce任务的平均执行时间,I _表示程序初始化 最长用时,表示map任务的最长执行时间,R_表示reduce任务的最长执行时间, 表示首次shuffle的最长持续时间,571^^:表示shuffle阶段的最长持续时间。A、B、Q只 是为了简化长公式采用的符号,它们表示的就是上面的三个公式。
[0038] 所述步骤(203)的计算方法为:
[0039] 基于程序完成时间的上限,根据拉格朗日公式计算出< + /的最小值。在这种情 况下,程序会占用最少的硬件资源,同时保证其执行时间不超过截止时间。
[0040]
[0041]
[0042] 其中,C=Dj-Q,4表
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1