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

文档序号:9274605阅读:来源:国知局
结合附图与实施例对本发明作进一步说明。
[0094] YARN是Hadoop 2. 0中的资源管理系统,它主要由资源管理器RM、节点管理器匪、 应用程序管理器AM和资源容器Container等几个组件构成。资源调度器是YARN最核心的 组件之一,如图2所示,YARN采用了双层资源调度模型:
[0095] 在第一层中,全局资源管理器RM中的资源调度器将资源分配给各个应用程序管 理器AM ;
[0096] 在第二层中,应用程序管理器AM再进一步将资源分配给它内部的各个任务。
[0097] 本发明提出了一种基于服务等级协议的YARN资源分配和节能调度策略,在YARN 架构的基础上修改了资源调度器,并增加了程序分析器、并行度估计器、性能监控器和频率 估计器四个模块,其总体架构如图1所示,【具体实施方式】包括如下步骤:
[0098] (1)对MapReduce程序进行预分析
[0099] 一个MapReduce程序包括两种子任务:map子任务和reduce子任务。
[0100] Map子任务负责读取输入的数据块并产生中间结果,这些中间结果存在本地磁盘 中并成为reduce任务的输入数据。
[0101] Reduce子任务负责合并相关的中间结果并将生成的最终结果写入HDFS。
[0102] 此外,reduce子任务还可以细分为三个阶段:shuffle阶段,sort阶段和reduce 阶段。
[0103] 由于shuffle阶段和sort阶段是交错进行的,本发明将这两个阶段当做一个整体 看待。图3描述了 MapReduce程序的三个主要阶段,其中map阶段和shuffle阶段是并行 的,而shuffle阶段和reduce阶段是串行的,并且只有当map任务的完成数量超过设定的 阈值后,reduce任务才可以启动。
[0104] 本发明中,定义程序J= (I,M,R,D,Pm,Pk)为MapReduce程序。其中,I表示输入 数据集的大小,M/R表示map/reduce任务的数量,D表示MapReduce程序SLA中指定的截止 时间,P M/PR表示map/reduce任务的最低并行度。
[0105] 在云计算集群中,假设MapReduce程序j在提交时的程序模型为 /^,#人其中,map任务的数量Mj是由输入数据集的大小I』以及当前集群中 默认数据块的大小决定的,reduce任务的数量&是由用户指定的。如果程序j要在截止时 间〇」之前完成,那么它的最低并行度/应由并行度估计器指定。
[0106] 在共享的Hadoop集群中,现有的资源调度器无法准确推断出能保证SLA的最少资 源并分配给每个应用程序。因为尽管所有的map/reduce任务函数相同,但它们的执行时间 不尽相同,这是由数据本地化、网络带宽、访问延迟等因素的不确定性造成的。如图1所示, 为了解决这个问题,本发明在MapReduce程序提交前,通过一个程序分析器从执行日志中 解析出独立于分配给这个程序资源量的性能指标,并在程序提交时将这些指标一并交给资 源管理器。表格1列出了这些相关的性能指标。
[0107] 表格 1
[0108]
[0109] (2)计算最差执行情况下任务的最低并行度
[0110] MapReduce是一种并行计算模型,所以map/reduce任务的并行度会严重影响 MapReduce程序的性能。并行度太低,则会像图3中的程序那样错过截止时间;并行度太高, 则是对硬件资源的一种浪费。鉴于map阶段和reduce阶段的并行度都会影响MapReduce 程序的性能,本发明提出一种求云计算环境中两阶段任务最低并行度的方法,并在RM中增 加了一个并行度估计器来辅助资源调度器进行资源分配。并行度估计器首先需要根据步骤 (2)中解析出的性能指标计算出程序j在最差执行情况下的完成时间(记为?}up)。
[0111]
[0112]
[0113]
[0114]
[0115]
[0116] 基于程序完成时间的上限,并行度估计器可以根据拉格朗日公式计算出M+巧I 的最小值。在这种情况下,程序会占用最少的硬件资源,同时保证其执行时间不超过截止时 间。
[0117]
[0118]
[0119] 其中C = Dj-Q,此外还需对以/4取上限,因为在实际环境中,任务并行度必须为 整数。
[0120] (3)通过SLA资源调度器为每个程序分配定量资源
[0121] 本发明按照YANR中提供的接口规范编写了一个SLA资源调度器,该调度器按照 每个应用程序不同的并行度来分配定量资源,资源分配单位用一个抽象概念Container表 示。不同于MRvl中基于槽位的资源划分方式,Container是一个动态划分单位,可以根据应 用程序的需求动态生成。Container封装了某个节点上的多维度资源,如内存、CPU、磁盘、 网络等,从而限定每个任务使用的资源量。
[0122] 算法1给出了本发明具体的资源分配策略,其中M//7?/表示程序j当前正在运行 的map/reduce任务数,表示已完成的map任务数,CMFR表示启动reduce任务的阈值。
[0123]
[0125] 当程序的AM向RM申请资源时,RM中的SLA资源调度器会为程序的每个任务分配 一个Container,并且这个任务只能使用该Container中描述的资源。与此同时,每个节点 的匪一方面通过周期性的心跳向RM汇报当前的可用资源,另一方面还要接收来自AM的 Container启动/停止等各种请求。当一个新的程序加入队列后,SLA调度器将按照最早截 止时间优先(EDF)算法对所有的作业进行排序。鉴于EDF算法已被证明是动态最优调度算 法,本发明中利用EDF算法来确定应用程序的优先级。此外,考虑到map任务具有数据本地 化优势,本发明中的资源分配算法尽量保证在存储输入数据的节点上运行map任务。
[0126] (4)监控MapReduce程序中子任务的运行情况
[0127] 以前的DVFS策略通常使用过去的CPU利用率来预测未来的CPU需求,由于预测的 不准确性,这些方法虽然可以降低能耗但通常导致错过截止时间。本发明利用YARN中主/ 从架构的特性,从另一角度提出一种新的松弛时间再利用方法来解决这个问题。本发明将 map阶段和reduce阶段视为两个任务,通过使用整个map阶段的松弛时间来动态调整所有 reduce任务的执行时间。为了实现这种任务级之上的DVFS策略,本发明在每个应用程序的 AM中增加了性能监控器和频率估计器两个模块,进而对整个reduce阶段进行宏观调控。
[0128] 性能监控器负责收集当前程序j的运行信息,并将程序的reduce任务划分为已完 成任务V、正在运行的任务#和尚未开始的任务#三类,其中,巧=G + i?/ + #。当程 序j的AM要启动一个reduce任务时,性能监控器会根据其程序模型中reduce阶段的并行 度#和截止时间h计算出剩余任务的理想执行时间 假设当前时间为T,则
[0129]
[0130] 为了充分利用松弛时间,当= 2时,使%个剩余reduce任务的执行时间 是其他任务的两倍。
[0131]
[0132] 频率估计器需要得到程序预分析时reduce任务的性能与运行频率之间的关系, 然后基于性能监控器的结果匹配剩余任务的预期执行频率(// )。在一个支持DVFS技术 的云计算集群中,假设每个计算节点支持N种频率{&,f\,. . .,fj,且;^< f iC . . . < f " =。则当v//_ e 时,令/7 =炙,其中4和匕是cpu支持的一组相邻频率。
[0133] (5)利用DVFS技术对剩余任务的运行频率进行动态调整
[0134] 随着集群的应用越来越广泛,人们越来越关注云计算带来高处理性能的同时一并 带来的高能耗。DVFS是当下应用很广泛的一种实时电压和频率调整的技术,它可以通过调 控CPU的电压和频率达到降低CPU能耗的目的。该技术的理论依据是如下公式:
[0135] E = P ? t = a CV2F ? t
[0136] CPUfreq模块是为了在Linux内核中更好的支持不同CPU的变频技术而提出的一 个统一设计的框架,它的具体结构如图4所示。CPUfreq提供了性能调控器、电能节省调控 器、随需应变调控器、保守调控器和用户空间调控器五种CPU管理器供用户选择使用,其中 前4种为CPUfreq智能模式,用户只需要设定相应的阈值,CPUfreq就会根据阈值和升降频 规则自动进行匹配,而用户空间模式则
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1