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

文档序号:9274605阅读:来源:国知局
示map任务的最低并行度,P//表示reduce任务的最低并行 度,Dj表示程序的截止时间。此外还需对取上限,因为在实际环境中,任务并行度必 须为整数。
[0043] 所述步骤⑶中:
[0044] SLA资源调度算法给出了具体的资源分配策略,其中表示程序j当前正在 运行的map/reduce任务数,Af表示已完成的map任务数,CMFR表示启动reduce任务的阈 值。
[0045] 具体的资源分配策略的步骤为:
[0046] 步骤(301):当程序j被提交后:首先完善其程序模型,心D;,<以);
[0047] 步骤(302):当收到来自节点n的心跳时:首先根据最早截止时间优先算法EDF对 程序队列排序;然后对每个空闲的资源容器c重复步骤(303);
[0048] 步骤(303):对每个程序j重复步骤(3031);
[0049] 步骤(3031):如果M/小于Pj;将资源容器c分配给应用程序管理器来执行具有最 高资源请求优先级的map任务;否则如果M/大于或者等于CMFR并且i?/小于以;将资源容 器c分配给应用程序管理器来执行reduce任务;
[0050]步骤(304):结束;
[0051] 所述步骤(4)的具体步骤为:
[0052] 步骤(401):将MapReduce程序的任务划分为"已完成任务"、"正在运行的任务"和 "尚未开始的任务"三类;
[0053] 步骤(402):实时收集已完成任务的完成时间,并据已完成任务的完成时间计算 出未完成任务的理想执行时间;
[0054] 步骤(403):根据未完成任务的理想执行时间来匹配未完成任务的预期执行频 率。
[0055] 所述步骤(5)中:在启动MapReduce任务时将预期执行频率封装到任务的运行环 境变量中,从而降低芯片的运行电压和频率,最终达到节能的目的。
[0056] 通过对CPUfreq子系统提供的用户空间调控器接口进行操作来动态调 整处理器的电压和频率。一旦确定了要启动的reduce任务后,应用程序管理器 AM(ApplicationMaster)需将该任务的预期运行频率连同Container中的资源信息封装到 启动资源的Context对象中,进而与对应的节点管理器匪(NodeManager)通信以启动该任 务。
[0057] 所述步骤(5)的节能方法为:
[0058]步骤(501):当程序j启动后:将Mj和R」加入到任务监控集;设置任务频率为 最尚可用频率;
[0059] 步骤(502):当得到资源容器c时:如果c用于执行map任务,在c所在的节点上 启动map任务;否则如果c用于执行reduce任务,循环步骤(503);
[0060] 步骤(503):性能监控器首先给出剩余任务的理想执行时间频率估计器根据 执行时间重设任务频率在c所在的节点上以频率//启动reduce任务;
[0061] 步骤(504):结束。
[0062] 基于服务等级协议的YARN资源分配和节能调度系统,包括:
[0063] 程序分析器:在提交MapReduce程序前,对每个MapReduce程序进行预分析,即从 MapReduce程序过去的运行日志中解析出所需的性能指标;并将解析出的性能指标传输给 资源管理器的并行度估计器;
[0064] 并行度估计器:在提交MapReduce程序后,根据解析出的性能指标,计算每个 MapReduce程序最差执行情况下任务的最低并行度;并将最低并行度传输给资源管理器的 SLA资源调度器;
[0065] SLA资源调度器:根据每个MapReduce程序各自的最低并行度,为MapReduce程序 分配不同的资源容器,并将资源容器的所在机架和节点位置信息传输给应用程序管理器;
[0066] 应用程序管理器:监控每个MapReduce程序的任务完成情况,并据此得出剩余任 务的理想执行时间和预期执行频率;所述应用程序管理器将预期执行频率传输给CPUfreq 子系统;
[0067] CPUfreq子系统:根据剩余任务的预期执行频率,动态调节CPU的电压和频率,从 而达到节能的目的。
[0068] 所述程序分析器中:如果所述MapReduce程序从未在集群中运行过,则需要在一 个设定的数据集上预先执行MapReduce程序来解析出所需的性能指标。
[0069] 解析出得的性能指标均独立于分配给所述MapReduce程序的资源量,并且反映了 MapReduce程序所有阶段的信息。
[0070] 此外,为了对频率进行更加精确地调整,解析时还需要提取任务的性能和运行频 率之间的关系。
[0071] 所述并行度估计器,包括:
[0072] 性能指标接收模块:在提交MapReduce程序时,程序分析器将MapReduce程序的性 能指标提交到资源管理器中;
[0073] 完成时间预估模块:当MapReduce程序加入作业队列后,根据MapReduce程序的性 能指标利用边界定理预估MapReduce程序在最差执彳丁情况下的完成时间;
[0074] 最低并行度计算模块:根据完成时间预估模块中得出的完成时间的上限,计算出 程序map和reduce两阶段任务的最低并行度。
[0075] 资源调度器是YARN中最核心的组件之一,且是插拔式的,它定义了一整套接口规 范以便用户可按照需要实现自己的调度器。本发明所述的SLA资源调度器就是按照YARN 给出的这套接口规范编写的。
[0076] SLA资源调度器会根据每个MapReduce程序不同的并行度为其分配定量的资源。 当程序的map和reduce两阶段任务的当前并行度小于程序模型中的并行度时,才为其分配 新的资源容器,从而保证程序运行期间占用的资源量不超出预算。
[0077] 在程序的执行过程中,SLA资源调度器保持每个程序map/reduce阶段的并行度不 小于也不超过并行度估计器指定的最低并行度。
[0078] 所述应用程序管理器包括性能监控器和频率估计器,
[0079] 性能监控器,将MapReduce程序的任务划分为"已完成任务"、"正在运行的任务" 和"尚未开始的任务"三类;性能监控器实时收集已完成任务的完成时间,并据已完成任务 的完成时间计算出未完成任务的理想执行时间;
[0080] 频率估计器,负责根据性能监控器的未完成任务的理想执行时间来匹配未完成任 务的预期执行频率。
[0081] 所述CPUfreq子系统:在启动MapReduce任务时将预期执行频率封装到任务的运 行环境变量中,从而降低芯片的运行电压和频率,最终达到节能的目的。
[0082] 本发明的有益效果:
[0083] (1)本发明首次提出针对云计算环境中YARN架构的资源分配和节能调度策略,在 保证MapReduce程序SLA的前提下为其分配定量资源,并结合DVFS技术最大限度地降低云 计算平台中的能耗。
[0084] (2)根据MapReduce程序的预分析结果,本发明提出一种求云计算环境中两阶段 任务最低并行度的方法。
[0085] (3)本发明按照YANR中提供的接口规范编写了 SLA资源调度器,其中包括基于 MapReduce程序截止时间的资源分配算法。
[0086] (4)为了基于服务等级协议实现对MapReduce程序的宏观调控,本发明利用YARN 的特性在每个应用程序的管理器中增加了性能监控器和频率估计器,并提出了两阶段任务 的节能调度算法。
[0087] (5)以前的方法通常用过去的CPU利用率来预测任务将来所需的CPU频率,往往导 致错过截止时间。本发明利用Hadoop框架中主/从的结构特性,通过对CPUfreq子系统提 供的用户空间调控器接口进行操作来动态调整处理器的频率,在保证MapReduce程序SLA 的前提下降低集群系统的能耗。
[0088] (6)由于YARN的通用性,Hadoop 2. 0朝着对多种框架进行统一管理的方向发展: 从支持离线处理的MapReduce到支持在线处理的Storm,从迭代式计算框架Spark到流式处 理框架S4,还有用于数据挖掘的MPI等。因此,本发明对将来这种轻量级弹性计算平台的发 展具有深远的意义。
【附图说明】
[0089] 图1本发明的总体架构图;
[0090] 图2资源调度器分配流程;
[0091] 图3 MapReduce程序的三个阶段;
[0092] 图4 CPUfreq子系统结构图。
【具体实施方式】
[0093] 下面
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1