一种MapReduce任务资源配置参数的机器学习方法

文档序号:6518069阅读:298来源:国知局
一种MapReduce任务资源配置参数的机器学习方法
【专利摘要】本发明涉及第2代Hadoop中YARN平台的作业优化技术,特别涉及一种MapReduce任务资源配置参数的机器学习方法。本发明通过引入机器学习方法,构建了一种学习器,能够为YARN平台中提交的MapReduce作业选择合适的运行参数,以提高平台运行效率,缩短作业完成时间。
【专利说明】—种MapReduce任务资源配置参数的机器学习方法
【技术领域】
[0001]本发明涉及第2代Hadoop中YARN平台的作业优化技术,特别涉及一种MapReduce任务资源配置参数的机器学习方法。
【背景技术】
[0002]Hadoop是当前最流行的大数据处理工具。它实现了一套分布式存储与计算系统,特别适合于TB、PB级的数据处理,并且借助于MapReduce框架,可以使用户轻松写出分布式程序,将传统业务迁移到分布式平台上来。
[0003]目前商业化的产品多是基于第I代Hadoop的技术实现,在实用中存在单点瓶颈、资源分配不灵活、编程框架单一等问题。正在研发中的第2代Hadoop,为克服上述缺点,创造性的将资源调度平台与编程框架分离:构建了新的底层平台YARN,负责集群的资源分配及任务调度;剥离MapReduce框架成为独立的可选组件,不再与平台耦合。
[0004]在新的资源调度平台YARN上,采用的调度算法是“支配资源公平”(DominantResource Fairness, DRF)。用户提交的程序称为作业,每个作业将会拆分成大量子任务运行。用户在提交作业时,需要指定每个子任务运行时占用的CPU和内存资源。YARN平台调度器会依此计算每个子任务的CPU和内存占集群总资源量的比值,并取其大者作为该类子任务的“支配份额”(Dominant Share)。在多名用户同时提交多个作业时,调度器会选择性地启动各类子任务,以保证各用户的总支配份额相同。
[0005]受上述调度算法影响,用户在提交作业时,设置的资源需求参数将会直接影响到作业的完成时间。设置的资源需求越大,每个子任务运行时间越短,但受到平台调度器的限制,同时运行的子任务数会减少;设置的资源需求越少,每个子任务运行时间越长,但同时运行的子任务数量会变多。
[0006]资源需求与子任务完成时间及平台并发任务数均不是线性关系。目前参数的设置主要依赖于用户经验,对于缺乏丰富经验的用户来说,并不能保证合理的参数设置,从而导致作业运行时间明显大于理论最优值。

【发明内容】

[0007]为了解决现有技术的问题,本发明提供了一种MapReduce任务资源配置参数的机器学习方法,通过引入机器学习算法,可以降低参数设置时的主观偏差,在一定程度上解决目前参数设置不合理的问题。
[0008]本发明所采用的技术方案如下:
一种MapReduce任务资源配置参数的机器学习方法,包括以下步骤:
A、预测任务完成时间;
B、预测平台并发任务数;
C、计算作业完成时间并判断时间是否最优,如果是则提交作业,如果否则重新进行步骤A。[0009]步骤A中对于任务完成时间的预测,需要输入数据的特征值有四个:(1) Map/Reduce ; (2)任务类型;(3)数据量;(4)复杂度。
[0010]步骤B中对于预测平台并发任务数的具体步骤是:
B1、学习器需要记录集群的配置参数,即总的CPU资源和内存资源;依此可以计算各类子任务的资源需求占比;
B2、学习器需要在一段自定义时间内观察平台的运行情况,记录不同环境下集群的资源利用情况,即支配份额的波动情况;
B3、在学习过程之后,学习器会对新条件下平台的支配份额做出预测,从而为后续计算做好准备。
[0011]步骤BI中,此过程针对特定的集群配置,当配置条件改变时,需重新学习。
[0012]步骤B2中,可能引起支配份额波动的环境参数包括:时间、某用户登录,这是一个无监督学习过程。
[0013]步骤C中,还需要获取每个作业拆分的子任务数量,对于当前作业,指定子任务资源需求,学习器给出的预测值包括:
子任务完成时间t ;
平台同时运行任务 数k;
作业的总子任务数N ;
据此可以计算在此资源配置下,作业完成总时间为:
T = t 氺 N / k ;
作业完成时间与资源配置是类抛物线关系,在计算出某一配置下的完成时间后,程序将正向或反向搜索,尝试将作业完成时间缩短,直至逼近理论最优值。
[0014]一种MapReduce任务资源配置参数的学习器,其包括2个需要训练的组件:任务完成时间预测器、平台并发任务数预测器,所述任务完成时间预测器采用监督学习方法,平台并发任务数预测器采用非监督学习方法,所述的学习器能够根据指定的资源配置参数预测作业完成时间,并迭代寻找作业完成时间最短的资源配置参数。
[0015]机器学习算法分为监督学习和非监督学习。监督学习将数据分成训练集和测试集,通过训练集训练出相应的规则,然后对测试集中的新数据测试验证。
[0016]本发明提供的技术方案带来的有益效果是:
本发明能够降低YARN平台作业提交时设置资源需求的主观偏差,能够缩短作业完成时间,提高平台整体的运行效率,为经济发展节约资源。
【专利附图】

【附图说明】
[0017]图1为本发明的一种MapReduce任务资源配置参数的机器学习方法的方法流程逻辑图;
图2为本发明的一种MapReduce任务资源配置参数的机器学习方法的实施流程图。【具体实施方式】
[0018]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。[0019]实施例如附图1所示。
[0020]本实施例要解决的问题如下:
学习过程中需要解决2个问题:1、对于不同的任务,配置相应的CPU和内存资源,预测任务完成时间;2、对于YARN平台,设置不同的资源需求参数,预测能同时运行的任务数。
[0021]得到上述两个预测值后,可以计算在不同的资源配置下,作业完成的总时间。
[0022]本实施例所采用的具体方案如下:
1、预测任务完成时间
输入数据的特征值有四个:
(1)Map/Reduce ;
(2)任务类型;
(3)数据量;
(4)复杂度。
[0023]由于Map和Reduce任务的资源需求要单独提交,因而将其作为两类不同的子任务处理。任务类型指具体的操作分类,例如数据库检索、文件排序等。数据量指要处理的数据规模。复杂度是一个人为控制变量,由用户估计任务的复杂程度。
[0024]训练过程中,需要在真实环境下对不同的任务配置不同的参数,记录其运行时间,作为实例库。在建立起一定规模·的实例库后,对于新到来的任务,根据其特征值计算与实例库中实例的相似度,从而得出预测的运行时间。
[0025]2、预测平台并发任务数
首先,学习器需要记录集群的配置参数,即总的CPU资源和内存资源。依此可以计算各类子任务的资源需求占比。此过程针对特定的集群配置,当配置条件改变时,需重新学习。
[0026]其次,学习器需要在一段时间内观察平台的运行情况,记录不同环境下集群的资源利用情况,即支配份额的波动情况。可能引起支配份额波动的环境参数包括:时间、某用户登录等。这是一个无监督学习过程。
[0027]在学习过程之后,学习器会对新条件下平台的支配份额做出预测,从而为后续计算做好准备。
[0028]3、计算作业完成时间
本过程中还需要获取每个作业拆分的子任务数量。拆分规则是先验知识,可以预先指定。
[0029]对于当前作业,指定子任务资源需求<n CPU, m MEM>,学习器给出的预测值包括: 子任务完成时间t
平台同时运行任务数k 作业的总子任务数N
据此可以计算在此资源配置下,作业完成总时间 T = t 氺 N / k
作业完成时间与资源配置是类抛物线关系,在计算出某一配置下的完成时间后,程序将正向或反向搜索,尝试将作业完成时间缩短,直至逼近理论最优值。
[0030]参照附图2,学习器在部署时,需要在真实环境中训练一段时间。需要有不同的任务在不同的资源配置下运行,由学习器采集运行时间结果,作为实例库里的实例。学习器也需要获取真实平台的特征参数,采集不同条件下的支配份额。另外需要获取当前的任务拆分规则、文件块大小等信息,为后续计算做准备。
[0031]当训练过程完成后,输入新作业特征值,学习器将根据实例库及后续算法,迭代计算作业完成时间最优的资源配置参数。
[0032]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种MapReduce任务资源配置参数的机器学习方法,包括以下步骤: A、预测任务完成时间; B、预测平台并发任务数; C、计算作业完成时间并判断时间是否最优,如果是则提交作业,如果否则重新进行步骤A。
2.根据权利要求1所述的一种MapReduce任务资源配置参数的机器学习方法,其特征在于,所述步骤A中对于任务完成时间的预测,需要输入数据的特征值有四个:(I) Map/Reduce ; (2)任务类型;(3)数据量;(4)复杂度。
3.根据权利要求1所述的一种MapReduce任务资源配置参数的机器学习方法,其特征在于,所述步骤B中对于预测平台并发任务数的具体步骤是: B1、学习器需要记录集群的配置参数,即总的CPU资源和内存资源;依此可以计算各类子任务的资源需求占比; B2、学习器需要在一段自定义时间内观察平台的运行情况,记录不同环境下集群的资源利用情况,即支配份额的波动情况; B3、在学习过程之后,学习器会对新条件下平台的支配份额做出预测,从而为后续计算做好准备。
4.根据权利要求3所述的一种MapReduce任务资源配置参数的机器学习方法,其特征在于,所述步骤BI中,此过程针对特定的集群配置,当配置条件改变时,需重新学习。
5.根据权利要求3所述的一种MapReduce任务资源配置参数的机器学习方法,其特征在于,所述步骤B2中,可能引起支配份额波动的环境参数包括:时间、某用户登录,这是一个无监督学习过程。
6.根据权利要求1所述的一种MapReduce任务资源配置参数的机器学习方法,其特征在于,所述步骤C中,还需要获取每个作业拆分的子任务数量,对于当前作业,指定子任务资源需求,学习器给出的预测值包括: 子任务完成时间t ; 平台同时运行任务数k; 作业的总子任务数N ; 据此可以计算在此资源配置下,作业完成总时间为:
T = t 氺 N / k ; 作业完成时间与资源配置是类抛物线关系,在计算出某一配置下的完成时间后,程序将正向或反向搜索,尝试将作业完成时间缩短,直至逼近理论最优值。
7.一种MapReduce任务资源配置参数的学习器,其包括2个需要训练的组件:任务完成时间预测器、平台并发任务数预测器,所述任务完成时间预测器采用监督学习方法,平台并发任务数预测器采用非监督学习方法,所述的学习器能够根据指定的资源配置参数预测作业完成时间,并迭代寻找作业完成时间最短的资源配置参数。
【文档编号】G06F9/50GK103593323SQ201310547034
【公开日】2014年2月19日 申请日期:2013年11月7日 优先权日:2013年11月7日
【发明者】王恩东, 胡雷钧, 张东, 吴楠, 刘璧怡 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1