一种任务调度方法和装置制造方法及图纸

技术编号:9935359 阅读:109 留言:0更新日期:2014-04-18 07:00
一种任务调度方法,其特征在于,该方法包括:对用户的任意一个任务设置相应的CPU资源需求和内存资源需求,并预测该任务的完成时间;预测用户能够同时运行的任务数,使得YARN平台中每一个用户的支配份额比相同;根据用户的总任务数、预测的任务的完成时间和预测的用户能够同时运行的任务数计算作业完成的总时间;在预设的CPU资源需求范围和内存资源需求范围内,改变设置的CPU资源需求和内存资源需求,重复上述步骤,直到计算得到的作业完成的总时间最小。

【技术实现步骤摘要】
一种任务调度方法和装置
本专利技术涉及第2代Hadoop中YARN平台的作业优化技术,尤其涉及一种任务调度方法和装置。
技术介绍
Hadoop是当前最流行的大数据处理工具。它实现了一套分布式存储与计算系统,特别适合太字节(TB,Terabyte)、PB(Petabyte)级的数据处理,并且借助于MapReduce框架,可以使用户轻松写出分布式程序,将传统业务迁移到分布式平台上来。目前商业化的产品多是基于第1代Hadoop的技术实现,在使用中存在单点瓶颈、资源分配不灵活、编程框架单一等问题。正在研发中的第2代Hadoop,为克服上述缺点,构建了新的底层平台YARN,负责集群的资源分配及任务调度;YARN剥离MapReduce框架成为独立的可选组件,不再与平台耦合。在新的资源调度平台YARN上,采用的调度算法是“支配资源公平”(DRF,DominantResourceFairness)。将用户提交的程序称为作业,每个作业将会被拆分成大量任务运行。用户在提交作业时,需要指定每个任务运行时占用的CPU资源和内存资源。YARN平台上的调度器会依次计算每个任务的CPU资源占CPU总资源的比值和内存资源占内存总资源量的比值,并取其比值大者作为该类子任务的“支配份额比”(DominantShare)。在多个用户同时提交多个作业时,调度器会选择性地启动各类子任务,以保证各用户的总支配份额比相同。上述调度算法中,用户在提交作业时,需要设置CPU资源需求和内存资源需求,设置的CPU资源需求或内存资源需求直接影响到作业的完成时间。设置的CPU资源需求或内存资源需求越大,每个任务运行时间越短,但受到平台调度器的限制,同时运行的任务数会减少;设置的CPU资源需求或内存资源需求越少,每个任务运行时间越长,但同时运行的任务数量会变多。因此,资源需求与任务完成时间及平台并发任务数均不是线性关系。然而目前参数的设置主要依赖于用户经验,对于缺乏丰富经验的用户来说,并不能保证合理的参数设置,从而导致作业运行时间明显大于理论最优值。
技术实现思路
为了解决上述技术问题,本专利技术提出了一种任务调度方法和装置,能够消除设置CPU资源需求和内存资源需求的主观性,从而缩短作业完成时间。为了达到上述目的,本专利技术提出了一种任务调度方法,该方法包括:对用户的任意一个任务设置相应的CPU资源需求和内存资源需求,并预测该任务的完成时间;预测用户能够同时运行的任务数,使得YARN平台中每一个用户的支配份额比相同;根据用户的总任务数、预测的任务的完成时间和预测的用户能够同时运行的任务数计算作业完成的总时间;在预设的CPU资源需求范围和内存资源需求范围内,改变设置的CPU资源需求和内存资源需求,重复上述步骤,直到计算得到的作业完成的总时间最小。优选地,所述预测任务的完成时间包括:生成实例库,实例库保存有实例的特征值和该实例在不同的CPU资源需求和内存资源需求时的运行时间;查找实例库中与设置的所述任务的CPU资源需求和内存资源需求均相同的实例;计算查找到的实例的特征值和所述任务的特征值的相似度,将相似度最大的实例的运行时间作为所述任务的完成时间。优选地,当查找不到所述实例库中与设置的所述任务的CPU资源需求和内存资源需求均相同的实例时,该方法还包括:查找实例库中与设置的所述任务的CPU资源需求或内存资源需求相同的实例。优选地,所述特征值包括映射Map/化简Reduce、任务类型、数据量和复杂度。优选地,当查找不到所述实例库中与设置的所述任务的CPU资源需求或内存资源需求均相同的实例时,该方法还包括:根据所述任务的任务类型将所述实例库中的默认实例的运行时间作为所述任务的完成时间。优选地,所述支配份额比为用户的CPU资源使用量/min(用户的总CPU资源需求量,理论公平CPU资源量),和用户的内存资源使用量/min(用户的总内存资源需求量,理论公平内存资源量)的最大值,其中,理论公平CPU资源量=全局CPU资源总量/用户数,理论公平内存资源量=全局内存资源总量/用户数;其中,min表示取最小值。优选地,所述根据资源分配比预测用户能够同时运行的任务数包括:当所述支配份额比为用户的CPU资源使用量/min(用户的总CPU资源需求量,理论公平CPU资源量)时,用户能够同时运行的任务数=(用户的总CPU资源需求量-用户的CPU资源使用量)*(1-CPU资源分配比)/任务的CPU资源需求;当所述支配份额比为用户的内存资源使用量/min(用户的总内存资源需求量,理论公平内存资源量)时,用户能够同时运行的任务数=(用户的总内存资源需求量-用户的内存资源使用量)*(1-内存资源分配比)/任务的内存资源需求优选地,所述作业完成的总时间T为:T=tN/k其中,N为所述用户的总任务数,t为预测的任务的完成时间,k为预测的用户能够同时运行的任务数。本专利技术还提出了一种任务调度装置,至少包括:配置模块,用于对用户的任意一个任务设置相应的CPU资源需求和内存资源需求;预测模块,用于根据设置的任务的CPU资源需求和内存资源需求,预测该任务的完成时间;预测用户能够同时运行的任务数,使得YARN平台中每一个用户的支配份额比相同;计算模块,用于根据用户的总任务数、预测的任务的完成时间和预测的用户能够同时运行的任务数计算作业完成的总时间;重复模块,用于在预设的CPU资源需求范围和内存资源需求范围内,改变设置的CPU资源需求和内存资源需求,将改变的CPU资源需求和内存资源需求发送给预测模块,直到计算得到的作业完成的总时间最小。优选地,还包括:生成模块,用于生成实例库,实例库保存有实例的特征值和该实例在不同的CPU资源需求和内存资源需求时的运行时间;所述预测模块,具体用于:查找实例库中与设置的所述任务的CPU资源需求和内存资源需求均相同的实例;计算查找到的实例的特征值和所述任务的特征值的相似度,将相似度最大的实例的运行时间作为所述任务的完成时间。优选地,所述预测模块,具体用于:查找实例库中与设置的所述任务的CPU资源需求或内存资源需求相同的实例。优选地,所述预测模块,具体用于:根据所述任务的特征值中的任务类型将所述实例库中的默认实例的运行时间作为所述任务的完成时间。优选地,所述计算模块,具体用于:根据公式T=tN/k计算所述作业完成的总时间;其中,T为所述作业完成的总时间,N为所述用户的总任务数,t为预测的任务的完成时间,k为预测的用户能够同时运行的任务数。与现有技术相比,本专利技术包括:对用户的任意一个任务设置相应的CPU资源需求和内存资源需求,预测该任务的完成时间;预测用户能够同时运行的任务数,使得YARN平台中每一个用户的支配份额比相同;根据用户的总任务数、预测的任务的完成时间和预测的用户能够同时运行的任务数计算作业完成的总时间;改变设置的CPU资源需求和内存资源需求,重复上述步骤,直到计算得到的作业完成的总时间最小。通过本专利技术的技术方案,能够降低用户在YARN平台提交作业时设置CPU资源需求和内存资源需求的主观偏差,从而缩短作业的完成时间,提供YARN平台的整体运行效率。附图说明下面对本专利技术实施例中的附图进行说明,实施例中的附图是用于对本专利技术的进一步理解,与说明书一起用于解释本专利技术,并不构成对本专利技术保护范围本文档来自技高网
...
一种任务调度方法和装置

【技术保护点】
一种任务调度方法,其特征在于,该方法包括:对用户的任意一个任务设置相应的CPU资源需求和内存资源需求,并预测该任务的完成时间;预测用户能够同时运行的任务数,使得YARN平台中每一个用户的支配份额比相同;根据用户的总任务数、预测的任务的完成时间和预测的用户能够同时运行的任务数计算作业完成的总时间;在预设的CPU资源需求范围和内存资源需求范围内,改变设置的CPU资源需求和内存资源需求,重复上述步骤,直到计算得到的作业完成的总时间最小。

【技术特征摘要】
1.一种任务调度方法,其特征在于,该方法包括:对用户的任意一个任务设置相应的CPU资源需求和内存资源需求,并预测该任务的完成时间;预测用户能够同时运行的任务数,使得YARN平台中每一个用户的支配份额比相同;根据用户的总任务数、预测的任务的完成时间和预测的用户能够同时运行的任务数计算作业完成的总时间;在预设的CPU资源需求范围和内存资源需求范围内,改变设置的CPU资源需求和内存资源需求,重复上述步骤,直到计算得到的作业完成的总时间最小;所述预测任务的完成时间包括:生成实例库,实例库保存有实例的特征值和该实例在不同的CPU资源需求和内存资源需求时的运行时间;查找实例库中与设置的所述任务的CPU资源需求和内存资源需求均相同的实例;计算查找到的实例的特征值和所述任务的特征值的相似度,将相似度最大的实例的运行时间作为所述任务的完成时间。2.根据权利要求1所述的任务调度方法,当查找不到所述实例库中与设置的所述任务的CPU资源需求和内存资源需求均相同的实例时,该方法还包括:查找实例库中与设置的所述任务的CPU资源需求或内存资源需求相同的实例。3.根据权利要求1所述的任务调度方法,所述特征值包括映射Map/化简Reduce、任务类型、数据量和复杂度。4.根据权利要求3所述的任务调度方法,当查找不到所述实例库中与设置的所述任务的CPU资源需求或内存资源需求均相同的实例时,该方法还包括:根据所述任务的任务类型将所述实例库中的默认实例的运行时间作为所述任务的完成时间。5.根据权利要求1所述的任务调度方法,所述支配份额比为用户的CPU资源使用量/min(用户的总CPU资源需求量,理论公平CPU资源量),和用户的内存资源使用量/min(用户的总内存资源需求量,理论公平内存资源量)的最大值,其中,理论公平CPU资源量=全局CPU资源总量/用户数,理论公平内存资源量=全局内存资源总量/用户数;其中,min表示取最小值。6.根据权利要求5所述的任务调度方法,所述根据资源分配比预测用户能够同时运行的任务数包括:当所述支配份额比为用户的CPU资源使用量/min(用户的总CPU资源需求量,理论公平CPU资源量)时,用户能够同时运行的任务数=(用户的总CPU资源需求量-用户的CPU资源使...

【专利技术属性】
技术研发人员:刘璧怡
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:

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

1