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

技术编号:9694669 阅读:149 留言:0更新日期:2014-02-21 00:57
本发明专利技术涉及第2代Hadoop中YARN平台的作业优化技术,特别涉及一种MapReduce任务资源配置参数的机器学习方法。本发明专利技术通过引入机器学习方法,构建了一种学习器,能够为YARN平台中提交的MapReduce作业选择合适的运行参数,以提高平台运行效率,缩短作业完成时间。

【技术实现步骤摘要】
—种MapReduce任务资源配置参数的机器学习方法
本专利技术涉及第2代Hadoop中YARN平台的作业优化技术,特别涉及。
技术介绍
Hadoop是当前最流行的大数据处理工具。它实现了一套分布式存储与计算系统,特别适合于TB、PB级的数据处理,并且借助于MapReduce框架,可以使用户轻松写出分布式程序,将传统业务迁移到分布式平台上来。目前商业化的产品多是基于第I代Hadoop的技术实现,在实用中存在单点瓶颈、资源分配不灵活、编程框架单一等问题。正在研发中的第2代Hadoop,为克服上述缺点,创造性的将资源调度平台与编程框架分离:构建了新的底层平台YARN,负责集群的资源分配及任务调度;剥离MapReduce框架成为独立的可选组件,不再与平台耦合。在新的资源调度平台YARN上,采用的调度算法是“支配资源公平”(DominantResource Fairness, DRF)。用户提交的程序称为作业,每个作业将会拆分成大量子任务运行。用户在提交作业时,需要指定每个子任务运行时占用的CPU和内存资源。YARN平台调度器会依此计算每个子任务的CPU和内存占集群总资源量的比值,并取其大者作为该类子任务的“支配份额”(Dominant Share)。在多名用户同时提交多个作业时,调度器会选择性地启动各类子任务,以保证各用户的总支配份额相同。受上述调度算法影响,用户在提交作业时,设置的资源需求参数将会直接影响到作业的完成时间。设置的资源需求越大,每个子任务运行时间越短,但受到平台调度器的限制,同时运行的子任务数会减少;设置的资源需求越少,每个子任务运行时间越长,但同时运行的子任务数量会变多。资源需求与子任务完成时间及平台并发任务数均不是线性关系。目前参数的设置主要依赖于用户经验,对于缺乏丰富经验的用户来说,并不能保证合理的参数设置,从而导致作业运行时间明显大于理论最优值。
技术实现思路
为了解决现有技术的问题,本专利技术提供了,通过引入机器学习算法,可以降低参数设置时的主观偏差,在一定程度上解决目前参数设置不合理的问题。本专利技术所采用的技术方案如下: ,包括以下步骤: A、预测任务完成时间; B、预测平台并发任务数; C、计算作业完成时间并判断时间是否最优,如果是则提交作业,如果否则重新进行步骤A。步骤A中对于任务完成时间的预测,需要输入数据的特征值有四个:(1) Map/Reduce ; (2)任务类型;(3)数据量;(4)复杂度。步骤B中对于预测平台并发任务数的具体步骤是: B1、学习器需要记录集群的配置参数,即总的CPU资源和内存资源;依此可以计算各类子任务的资源需求占比; B2、学习器需要在一段自定义时间内观察平台的运行情况,记录不同环境下集群的资源利用情况,即支配份额的波动情况; B3、在学习过程之后,学习器会对新条件下平台的支配份额做出预测,从而为后续计算做好准备。步骤BI中,此过程针对特定的集群配置,当配置条件改变时,需重新学习。步骤B2中,可能引起支配份额波动的环境参数包括:时间、某用户登录,这是一个无监督学习过程。步骤C中,还需要获取每个作业拆分的子任务数量,对于当前作业,指定子任务资源需求,学习器给出的预测值包括: 子任务完成时间t ; 平台同时运行任务 数k; 作业的总子任务数N ; 据此可以计算在此资源配置下,作业完成总时间为:T = t 氺 N / k ; 作业完成时间与资源配置是类抛物线关系,在计算出某一配置下的完成时间后,程序将正向或反向搜索,尝试将作业完成时间缩短,直至逼近理论最优值。一种MapReduce任务资源配置参数的学习器,其包括2个需要训练的组件:任务完成时间预测器、平台并发任务数预测器,所述任务完成时间预测器采用监督学习方法,平台并发任务数预测器采用非监督学习方法,所述的学习器能够根据指定的资源配置参数预测作业完成时间,并迭代寻找作业完成时间最短的资源配置参数。机器学习算法分为监督学习和非监督学习。监督学习将数据分成训练集和测试集,通过训练集训练出相应的规则,然后对测试集中的新数据测试验证。本专利技术提供的技术方案带来的有益效果是: 本专利技术能够降低YARN平台作业提交时设置资源需求的主观偏差,能够缩短作业完成时间,提高平台整体的运行效率,为经济发展节约资源。【附图说明】图1为本专利技术的的方法流程逻辑图; 图2为本专利技术的的实施流程图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。实施例如附图1所示。本实施例要解决的问题如下: 学习过程中需要解决2个问题:1、对于不同的任务,配置相应的CPU和内存资源,预测任务完成时间;2、对于YARN平台,设置不同的资源需求参数,预测能同时运行的任务数。得到上述两个预测值后,可以计算在不同的资源配置下,作业完成的总时间。本实施例所采用的具体方案如下: 1、预测任务完成时间 输入数据的特征值有四个:(1)Map/Reduce ; (2)任务类型; (3)数据量; (4)复杂度。由于Map和Reduce任务的资源需求要单独提交,因而将其作为两类不同的子任务处理。任务类型指具体的操作分类,例如数据库检索、文件排序等。数据量指要处理的数据规模。复杂度是一个人为控制变量,由用户估计任务的复杂程度。训练过程中,需要在真实环境下对不同的任务配置不同的参数,记录其运行时间,作为实例库。在建立起一定规模·的实例库后,对于新到来的任务,根据其特征值计算与实例库中实例的相似度,从而得出预测的运行时间。2、预测平台并发任务数 首先,学习器需要记录集群的配置参数,即总的CPU资源和内存资源。依此可以计算各类子任务的资源需求占比。此过程针对特定的集群配置,当配置条件改变时,需重新学习。其次,学习器需要在一段时间内观察平台的运行情况,记录不同环境下集群的资源利用情况,即支配份额的波动情况。可能引起支配份额波动的环境参数包括:时间、某用户登录等。这是一个无监督学习过程。在学习过程之后,学习器会对新条件下平台的支配份额做出预测,从而为后续计算做好准备。3、计算作业完成时间 本过程中还需要获取每个作业拆分的子任务数量。拆分规则是先验知识,可以预先指定。对于当前作业,指定子任务资源需求<n CPU, m MEM>,学习器给出的预测值包括: 子任务完成时间t 平台同时运行任务数k 作业的总子任务数N 据此可以计算在此资源配置下,作业完成总时间 T = t 氺 N / k 作业完成时间与资源配置是类抛物线关系,在计算出某一配置下的完成时间后,程序将正向或反向搜索,尝试将作业完成时间缩短,直至逼近理论最优值。参照附图2,学习器在部署时,需要在真实环境中训练一段时间。需要有不同的任务在不同的资源配置下运行,由学习器采集运行时间结果,作为实例库里的实例。学习器也需要获取真实平台的特征参数,采集不同条件下的支配份额。另外需要获取当前的任务拆分规则、文件块大小等信息,为后续计算做准备。当训练过程完成后,输入新作业特征值,学习器将根据实例库及后续算法,迭代计算作业完成时间最优的资源配置参数。以上所述仅为本专利技术的较佳实施例,并不用以限制本专利技术,凡在本专利技术的本文档来自技高网
...

【技术保护点】
一种MapReduce任务资源配置参数的机器学习方法,包括以下步骤:A、预测任务完成时间;B、预测平台并发任务数;C、计算作业完成时间并判断时间是否最优,如果是则提交作业,如果否则重新进行步骤A。

【技术特征摘要】
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中,此过程针对特定的...

【专利技术属性】
技术研发人员:王恩东胡雷钧张东吴楠刘璧怡
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1