一种基于Hadoop多作业环境下的资源调度方法技术

技术编号:18181012 阅读:47 留言:0更新日期:2018-06-12 21:54
本发明专利技术公开了一种基于Hadoop多作业环境下的资源调度方法,包括:(1)实时采集集群负载、Hadoop平台以及硬件三方监控信息,(2)实时采集集群各计算节点上用户的作业执行监控信息,(3)汇总集群三方监控数据,建模评估节点的计算能力,并将集群节点划分为优势计算节点和劣势计算节点,(4)若节点为优势计算节点,则启动基于相似度评估的作业任务资源需求配置策略,(5)若节点为劣势计算节点,则还原为Yarn默认的资源需求配置策略。本发明专利技术解决了Yarn现有资源调度器中任务资源需求划分粒度过大导致的资源碎片问题,能够综合考虑集群节点和作业的异构性,通过合理、有效地分配节点资源增加集群执行并发度,从而提高Hadoop集群多作业的执行效率。

A resource scheduling method based on Hadoop multi job environment

The invention discloses a resource scheduling method based on Hadoop multi job environment, which includes: (1) real-time collection of cluster load, Hadoop platform and hardware three party monitoring information. (2) real-time acquisition of monitoring information on the operation of users on each computing node of the cluster. (3) the data of the total cluster three parties are monitored and the evaluation nodes are modeled. The clustering nodes are divided into dominant computing nodes and inferiority computing nodes. (4) if nodes are the dominant computing nodes, the task resource requirements configuration strategy based on similarity evaluation is started. (5) if nodes are inferior computing nodes, the default allocation strategy of Yarn is reduced. This invention solves the problem of resource fragmentation caused by the big task resource requirement in the existing resource scheduler of Yarn. It can comprehensively consider the heterogeneity of cluster nodes and jobs, and increase the concurrency of cluster by rational and effective allocation of node resources, so as to improve the execution efficiency of Hadoop cluster operation.

【技术实现步骤摘要】
一种基于Hadoop多作业环境下的资源调度方法
本专利技术属于大数据
,更具体地,涉及一种基于Hadoop多作业环境下的资源调度方法。
技术介绍
随着大数据与互联网时代来临,大数据技术目前已成为学术界和产业界的研究热点,而Hadoop作为开源的大数据处理平台不论在企业还是学术科研领域都已经得到了广泛应用。但是第1代Hadoop在使用中存在单点故障、资源利用率低、无法支持多种计算框架等实际问题。为克服上述缺点,Apache推出了第2代Hadoop,将资源管理模块构建成了一个独立的通用资源管理系统Yarn,统一负责集群的资源分配以及任务调度。Yarn能够让多种计算框架(MapReduce、内存计算框架Spark、流式计算框架Strom和图计算框架等)运行在一个集群中,为不同的并行化计算提供统一的资源分配服务,使得集群具有易于运维、资源弹性可伸缩和数据可共享等优点。其中,资源调度器是HadoopYarn中最核心的组件之一,Yarn的资源调度策略会直接影响集群的任务分配,从而影响Hadoop集群整体性能。目前Yarn主要自带以下三种常用资源调度器:①FIFO调度器(FirstInFirstOutScheduler):先来先服务资源调度器,Hadoop按照作业提交顺序依次运行这些作业;②计算能力调度器(CapacityScheduler):是Yarn中默认的资源调度器,适用于多用户共享集群,采用队列的形式分配和调度集群资源,每个队列可设定一定比例的资源最低保证和使用上限,同时,每个用户也可设定一定的资源使用上限以防止资源滥用;③公平调度器(FairScheduler):以队列为单位划分资源,支持分级队列,允许每个队列单独配置调度策略,包括FIFO、Fair和DRF,即先来先服务、公平调度和主资源公平调度。Yarn已有的资源调度策略虽然十分多样化,但仍存在明显的缺陷。一方面,在实际运行环境中,Hadoop集群多为异构集群,集群中各计算节点的综合计算能力存在较大差异,而Yarn常规的静态任务资源分配策略无法感知不同节点的异构性,无法根据集群中异构节点的计算能力、作业执行监控状况和资源使用情况动态调整节点上运行的任务数目,间接导致集群所有计算节点上的并发度一样;另一方面,Yarn现有的资源调度算法并未考虑用户提交的作业之间的区别,即未考虑不同类型的作业以及同作业不同执行阶段实际资源需求的异构性,存在大量资源碎片的现象,导致Hadoop平台无法充分利用集群资源,例如很多作业任务可能是io密集型的,消耗的cpu资源非常少,如果此时资源调度器为它分配一整个单位的cpu,剩余的cpu碎片资源无法让其他作业任务使用,是一种严重的资源浪费,会极大程度上地降低系统资源的利用率,减少作业任务执行的并发度,从而直接影响集群作业的执行效率,最终导致Hadoop整体性能下降。综上所述,Hadoop2.0现有的资源调度策略未考虑集群节点和作业的异构性,无法根据节点的处理能力、作业执行监控状况和资源使用情况动态改变作业的资源需求,无法同时保证作业任务的高效并发和集群资源的充分利用,从而导致系统整体性能下降。
技术实现思路
针对现有资源调度技术的缺陷,本专利技术的目的在于提供一种能够根据集群节点异构性、作业执行监控状况和资源使用情况动态调整资源需求的资源调度方法,旨在解决目前已有资源调度策略导致的集群整体资源利用率低、系统性能差的问题。本专利技术提供了一种基于Hadoop多作业环境下的资源调度方法,其具体步骤如下:(1)实时采集集群负载、Hadoop平台以及硬件三方监控信息,并按照数据采集的先后顺序进行存储,生成三方监控输出反馈文件;(2)实时采集集群各计算节点上用户的作业执行监控信息,生成作业执行监控输出反馈文件;(3)汇总、解析步骤(1)中得出的三方监控输出反馈文件,建模评估节点的计算能力,并根据计算能力评分的高低将集群计算节点划分为优势计算节点和劣势计算节点;(4)若节点为优势计算节点,则根据步骤(2)中得出的作业执行监控输出反馈文件启动基于相似度评估的作业任务资源需求配置策略;(5)若节点为劣势计算节点,则还原为Yarn默认的资源需求配置策略。其中,所述步骤(1)中,集群负载监控信息和硬件监控信息的采集是通过搭建集群分布式监控系统实现,其中集群负载监控信息为计算节点平均负载信息,硬件监控信息包括监控周期内节点cpu、磁盘、内存和网络平均利用率。进一步地,所述步骤(1)中,计算节点上自定义的Hadoop平台监控信息项的获取是通过在计算框架源码中植入监控代码实现,具体包括计算节点上多作业任务执行的成功率、投放新任务的平均等待时间以及任务的平均响应时间。进一步地,所述步骤(1)中,三方监控输出反馈文件中的每一条监控数据记录表示为:record=(Host,Monitor_Id,Load_Info,Platform_Info,Hardware_Info)其中,Host表示计算节点主机名,Monitor_Id表示计算节点所处监控周期的序列号,Load_Info表示当前时刻计算节点的负载信息,Platform_Info表示计算节点在Hadoop平台上的自定义监控信息,包括多作业任务执行的成功率、投放新任务的平均等待时间以及任务的平均响应时间,Hardware_Info表示节点的硬件监控信息,包括cpu、内存、网络和磁盘平均利用率。进一步地,所述步骤(2)中,用户的作业执行监控信息是通过在计算框架源码中内嵌自定义监控代码实现,作业的执行监控输出反馈文件中的每一条监控记录表示为如下格式:record=(Job_Id,Host,Monitor_Id,x1,x2,x3,x4,x5,x6,x7,x8,x9)其中,Job_Id表示作业序列号,Host表示计算节点主机名,Monitor_Id表示计算节点所处的监控周期序列号,x1、x2分别表示该计算节点对应监控周期下作业执行Map任务map子阶段、sort子阶段的平均响应时间,x3、x4、x5分别表示该计算节点对应监控周期下作业执行Reduce任务copy子阶段、sort子阶段和reduce子阶段的平均响应时间,x6、x7分别表示该计算节点对应监控周期下作业执行Map任务的平均cpu消耗和平均内存消耗,x8、x9分别表示该计算节点对应监控周期下作业执行Reduce任务的平均cpu消耗和平均内存消耗。进一步地,所述步骤(2)中,包括生成集群上用户作业的历史执行监控信息实例库,实例库中保存集群所有作业在不同计算节点、不同监控周期下的执行状况,即保存有集群历史作业执行监控输出反馈文件中的每一项监控记录。进一步地,所述步骤(3)具体包括以下子步骤:(3-1)汇总、解析步骤(1)中得出的三方监控输出反馈文件,在线建模计算节点的计算能力评分,具体采用以下公式:其中,t表示计算节点的计算能力评分,表示集群在当前监控周期下负载信息,表示在当前监控周期下自定义的Hadoop平台监控信息,suc表示计算节点执行任务的成功率,wait_time表示在该计算节点投放新任务的平均等待时间,response_time表示节点上任务执行的平均响应时间,表示在当前监控周期下节点的硬件监控信息,cpu_util、io_util、mem_uti本文档来自技高网
...
一种基于Hadoop多作业环境下的资源调度方法

【技术保护点】
一种基于Hadoop多作业环境下的资源调度方法,其特征在于,包括以下步骤:(1)实时采集集群负载、Hadoop平台以及硬件三方监控信息,并按照数据采集的先后顺序进行存储,生成三方监控输出反馈文件;(2)实时采集集群各计算节点上用户的作业执行监控信息,生成作业执行监控输出反馈文件;(3)汇总、解析步骤(1)中得出的三方监控输出反馈文件,建模评估节点的计算能力,并根据计算能力评分的高低将集群计算节点划分为优势计算节点和劣势计算节点;(4)若节点为优势计算节点,则根据步骤(2)中得出的作业执行监控输出反馈文件启动基于相似度评估的作业任务资源需求配置策略;(5)若节点为劣势计算节点,则还原为Yarn默认的资源需求配置策略;所述步骤(3)包括以下子步骤:(3‑1)汇总、解析步骤(1)中得出的三方监控输出反馈文件,在线建模计算节点的计算能力评分,具体采用以下公式:

【技术特征摘要】
1.一种基于Hadoop多作业环境下的资源调度方法,其特征在于,包括以下步骤:(1)实时采集集群负载、Hadoop平台以及硬件三方监控信息,并按照数据采集的先后顺序进行存储,生成三方监控输出反馈文件;(2)实时采集集群各计算节点上用户的作业执行监控信息,生成作业执行监控输出反馈文件;(3)汇总、解析步骤(1)中得出的三方监控输出反馈文件,建模评估节点的计算能力,并根据计算能力评分的高低将集群计算节点划分为优势计算节点和劣势计算节点;(4)若节点为优势计算节点,则根据步骤(2)中得出的作业执行监控输出反馈文件启动基于相似度评估的作业任务资源需求配置策略;(5)若节点为劣势计算节点,则还原为Yarn默认的资源需求配置策略;所述步骤(3)包括以下子步骤:(3-1)汇总、解析步骤(1)中得出的三方监控输出反馈文件,在线建模计算节点的计算能力评分,具体采用以下公式:其中,t表示计算节点的计算能力评分,表示集群在当前监控周期下负载信息,表示在当前监控周期下自定义的Hadoop平台监控信息,suc表示计算节点执行任务的成功率,wait_time表示在该计算节点投放新任务的平均等待时间,response_time表示节点上任务执行的平均响应时间,表示在当前监控周期下节点的硬件监控信息,cpu_util、io_util、mem_util、net_util分别表示计算节点上cpu、磁盘、内存和网络的平均利用率,FJ则是节点计算能力评分t关于三个变量的一个复杂函数;(3-2)采用排序函数对节点计算能力评分t按照从高到低的顺序进行重新排列,形成计算节点主机名、监控周期序列号和计算能力评分三者之间的映射关系,具体通过以下键值对表示:(键,值)=((Host,Monitor_Id),t)其中,Host表示计算节点主机名,Monitor_Id表示节点所在监控周期的序列号,t表示建模得出的节点计算能力评分;(3-3)计算集群节点计算能力评分均值at,具体公式如下:其中,tz表示计算节点z的计算能力评分,N表示集群计算节点总个数;(3-4)将排序后的前K个节点判定为集群的优势计算节点,后(N-K)个节点判定为劣势计算节点,其中,N表示当前集群所有节点个数,K表示集群中计算能力评分高于(β*at)的计算节点个数,β取经验值。2.根据权利要求1所述的基于Hadoop多作业环境下的资源调度方法,其特征在于,所述步骤(1)中,集群负载监控信息和硬件监控信息的采集通过搭建集群分布式监控系统实现,其中集群负载监控信息为计算节点平均负载信息,硬件监控信息包括监控周期内节点cpu、磁盘、内存和网络平均利用率。3.根据权利要求1或2所述的基于Hadoop多作业环境下的资源调度方法,其特征在于,所述步骤(1)中,Hadoop平台监控信息项的获取通过在计算框架源码中植入监控代码实现,具体包括计算节点上多作业任务执行的成功率、投放新任务的平均等待时间以及任务的平均响应时间。4.根据权利要求1或2所述的基于Hadoop多作业环境下的资源调度方法,其特征在于,所述步骤(1)中,三方监控输出反馈文件中的每一条监控数据记录表示为:record=(Host,Monitor_Id,Load_Info,Platform_Info,Hardware_Info)其中,Host表示计算节点主机名,Monitor_Id表示计算节点所处监控周期的序列号,Load_Info表示当前时刻计算节点的负载信息,Platform_Info表示计算节点在Hadoop平台上的自定义监控信息,包括多作业任务执行的成功率、投放新任务的平均等待时间以及任务的平均响应时间,Hardware_Info表示节点的硬件监控信息,包括cpu、内存、网络和磁盘平均利用率。5.根据权利要求1或2所述的基于Hadoop多作业环境下的资源调度方法,其特征在于,所述步骤(2)中,用户的作业执行监控信息通过在计算框架源码中内嵌自定义监控代码实现,作业的执行监控输出反馈文件中的每一条监控记录表示为如下格式:record=(Job_Id,Host,Monitor_Id,x1,x2,x3,x4,x5,x6,x7,x8,x9)其中,Job_Id表示作业序列号,Host表示计算节点主机名,Monitor_Id表示计算节点所处的监控周期序列号,x1、x2分别表示该计算节点对应监控周期下作业执行Map任务map子阶段、sort子阶段的平均响应时间,x3、x4、x5分别表示该计算节点对应监控周期下作业执行Reduce任务copy子阶段、sort子阶段和reduce子阶段的平均响应时间,x6、x7分别表示该计算节点对应监控周期下作业Map任务的平均cpu消耗和平均内存消耗,x8、x9分别表示该计算节点对应监控周期下作业Reduce任务的平均cpu消耗和平均内存消耗。6.根据权利要求1或2所述的...

【专利技术属性】
技术研发人员:王芳冯丹杨静怡潘佳艺周俊
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1