一种资源管理方法、装置和系统制造方法及图纸

技术编号:14930658 阅读:68 留言:0更新日期:2017-03-31 12:32
本发明专利技术公开了一种资源管理方法,应用于Hadoop系统的主节点,该方法包括:获取从节点的空闲资源槽信息;从等待资源分配的用户队列中选取用户,在选出用户后,从所述用户的待运行任务队列中选取待运行任务,包括:根据所述空闲资源槽信息中的空闲资源槽类型信息,优先从所述用户的待运行任务队列中选取与所述空闲资源槽类型匹配的待运行任务,在不存在与所述空闲资源槽类型匹配的待运行任务时,选取与所述空闲资源槽类型不同的待运行任务;在成功选取到待运行任务后,将所述待运行任务分配给所述从节点。本发明专利技术能够提高Hadoop系统的资源利用率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及的是一种资源管理方法、装置和系统
技术介绍
Hadoop系统是目前使用十分广泛的一个分布式系统,用来处理大规模数据。Hadoop集群由一个主节点和多个从节点组成,每个节点可以是一台计算机或者一台虚拟机。主节点用来管理Hadoop分布式文件系统HDFS(HadoopDistributedFileSystem,HDFS)和各个作业的处理过程(即MapReduce计算框架),从节点负责数据的存储和对作业数据的处理。Hadoop采用Google公司提出的MapReduce并行处理框架。主节点在MapReduce中称为JobTracker,负责作业的处理过程;从节点在MapReduce框架中称之为TaskTracker,负责作业任务的执行。Hadoop作业的输入数据被划分成很多大小相同的数据块分布在计算机集群中,由多个节点并行处理这些输入数据从而加快作业的处理时间。一个节点可以通过配置同时存储和处理多个数据块,每个数据块对应一个任务。作业的执行分为两个阶段:第一个阶段即map阶段,各个节点处理分布在集群中作业的map任务;第二个阶段为Reduce阶段,即通过reduce任务对分布在各个节点的map任务处理结果进行汇总,形成最终的作业处理结果。在Hadoop集群中,所有的计算资源被抽象为槽,每个槽可以被独占用来处理一个任务,根据计算节点(即从节点)的硬件配置,管理员可以配置不同数目的槽。由于每个作业都由一个map任务集合和一个reduce任务集合组成,而map任务和reduce任务对集群资源的需求有所不同,所以将槽划分为map槽和reduce槽两种类型。其中,map槽只能运行map任务,reduce槽只能运行reduce任务。所以在Hadoop中槽是最基本的计算单元,并且槽的数目在集群启动前已被管理员配置完毕,运行过程中不能改变。资源槽也是资源分配的基本单位,每个资源槽占用着本节点上一定的物理资源,比如CPU、内存、磁盘和网络带宽。图1是一个计算节点和资源槽的示意图。在Hadoop中,每个作业包括map任务集合和reduce任务集合,每一个任务对应一个资源槽(map任务对应map槽,reduce任务对应reduce槽),对作业任务的执行有两个严格的限制:(1)reduce任务必须在所有map任务完成后才能真正开始;(2)map任务只能运行在map槽上,reduce任务只能运行在reduce槽上。这两个限制带来的结果就是在不同的作业负载和资源槽配置下,集群资源利用率和性能都有较大不同,即使在最优的作业提交顺序和最优的配置资源槽下仍然会严重影响相应资源槽的利用率。由于map任务和reduce任务的数目随着时间的推移都在不断的变化,分配给map(或者reduce)任务的资源槽数目可能会超过map(或者reduce)任务的数目。所以,在MapReduce集群动态负载下,可能会出现一种资源槽负载过重而另一种资源槽却有空闲,从而导致资源浪费
技术实现思路
本专利技术所要解决的技术问题是提供一种资源管理方法、装置和系统,能够提高Hadoop系统的资源利用率。本专利技术实施例提供了一种资源管理方法,应用于Hadoop系统的主节点,该方法包括:获取从节点的空闲资源槽信息;从等待资源分配的用户队列中选取用户,在选出用户后,从所述用户的待运行任务队列中选取待运行任务,包括:根据所述空闲资源槽信息中的空闲资源槽类型信息,优先从所述用户的待运行任务队列中选取与所述空闲资源槽类型匹配的待运行任务,在不存在与所述空闲资源槽类型匹配的待运行任务时,选取与所述空闲资源槽类型不同的待运行任务;在成功选取到待运行任务后,将所述待运行任务分配给所述从节点。可选地,所述从等待资源分配的用户队列中选取用户,包括:从所述等待资源分配的用户队列的头部开始扫描所述用户队列;每扫描到一个用户,判断所述用户是否满足分配条件,如所述用户满足所述分配条件,则扫描终止,如所述用户不满足所述分配条件,则扫描下一个用户。可选地,所述分配条件包括:所述用户具有满足数据本地性要求的待运行任务。可选地,在所述分配条件包含数据本地性要求时,从所述用户的待运行任务队列中选取待运行任务,还包括:如扫描完所有的用户后未能选取到待运行任务,则从所述分配条件中去除数据本地性要求,重新从所述等待资源分配的用户队列的头部开始扫描所述用户队列,每扫描到一个用户,判断所述用户是否具有待运行任务,如所述用户具有待运行任务,则扫描终止,从所述用户的待运行任务队列中选取待运行任务,如所述用户没有待运行任务,则扫描下一个用户。本专利技术实施例还提供了一种资源管理方法,应用于Hadoop系统的从节点,该方法包括:检测到空闲资源槽后,向主节点发送携带空闲资源槽信息的通知消息,所述空闲资源槽信息包括本节点的空闲资源槽的类型信息;接收所述主节点为本节点的空闲资源槽分配的待运行任务并将接收到的待运行任务放入任务启动队列中;在所述任务启动队列非空且当前存在空闲资源槽时,从所述任务启动队列中取出待运行任务进行启动。可选地,所述接收所述主节点分配的待运行任务并将接收到的待运行任务放入任务启动队列中,包括:将接收到的map任务放入map任务启动队列,将接收到的reduce任务放入reduce任务启动队列;所述在所述任务启动队列非空且当前存在空闲资源槽时,从所述任务启动队列中取出待运行任务进行启动,包括:如所述reduce任务启动队列非空且当前存在空闲资源槽,则从所述reduce任务启动队列中取出待运行任务进行启动;如所述reduce任务启动队列为空且所述map任务启动队列非空且当前存在空闲资源槽,则从所述map任务启动队列中取出待运行任务进行启动。本专利技术实施例还提供了一种资源管理装置,应用于Hadoop系统的主节点,包括:信息接收模块,用于获取从节点的空闲资源槽信息;任务调度模块,用于从等待资源分配的用户队列中选取用户,在选出用户后,从所述用户的待运行任务队列中选取待运行任务,包括:根据所述空闲资源槽信息中的空闲资源槽类型信息,优先从所述用户的待运行任务队列中选取与所述空闲资源槽类型匹配的待运行任务,在不存在与所述空闲资源槽类型匹配的待运行任务时,选取与所述空闲资源槽类型不同的待运行任务;信息发送模块,用于在成功选取到待运行任务后,将所述待运行任务分配给所述从节点。可选地,所述任务调度模块,用于从等待资源分配的用户队列中选取用户,包括:从所述等待资源分配的用户队列的头部开始扫描所述用户队列;每扫描到一个用户,判断所述用户是否满足分配条件,如所述用户满足所述分配条件,则扫描终止,如所述用户不满足所述分配条件,则扫描下一个用户。可选地,所述分配条件包括:所述用户具有满足数据本地性要求的待运行任务。可选地,所述任务调度模块,用于在所述分配条件包含数据本地性要求时,从所述用户的待运行任务队列中选取待运行任务,还包括:如扫描完所有的用户后未能选取到待运行任务,则从所述分配条件中去除数据本地性要求,重新从所述等待资源分配的用户队列的头部开始扫描所述用户队列,每扫描到一个用户,判断所述用户是否具有待运行任务,如所述用户具有待运行任务,则扫描终止,从所述用户的本文档来自技高网
...
一种资源管理方法、装置和系统

【技术保护点】
一种资源管理方法,应用于Hadoop系统的主节点,该方法包括:获取从节点的空闲资源槽信息;从等待资源分配的用户队列中选取用户,在选出用户后,从所述用户的待运行任务队列中选取待运行任务,包括:根据所述空闲资源槽信息中的空闲资源槽类型信息,优先从所述用户的待运行任务队列中选取与所述空闲资源槽类型匹配的待运行任务,在不存在与所述空闲资源槽类型匹配的待运行任务时,选取与所述空闲资源槽类型不同的待运行任务;在成功选取到待运行任务后,将所述待运行任务分配给所述从节点。

【技术特征摘要】
1.一种资源管理方法,应用于Hadoop系统的主节点,该方法包括:获取从节点的空闲资源槽信息;从等待资源分配的用户队列中选取用户,在选出用户后,从所述用户的待运行任务队列中选取待运行任务,包括:根据所述空闲资源槽信息中的空闲资源槽类型信息,优先从所述用户的待运行任务队列中选取与所述空闲资源槽类型匹配的待运行任务,在不存在与所述空闲资源槽类型匹配的待运行任务时,选取与所述空闲资源槽类型不同的待运行任务;在成功选取到待运行任务后,将所述待运行任务分配给所述从节点。2.如权利要求1所述的方法,其特征在于:所述从等待资源分配的用户队列中选取用户,包括:从所述等待资源分配的用户队列的头部开始扫描所述用户队列;每扫描到一个用户,判断所述用户是否满足分配条件,如所述用户满足所述分配条件,则扫描终止,如所述用户不满足所述分配条件,则扫描下一个用户。3.如权利要求2所述的方法,其特征在于:所述分配条件包括:所述用户具有满足数据本地性要求的待运行任务。4.如权利要求3所述的方法,其特征在于:在所述分配条件包含数据本地性要求时,从所述用户的待运行任务队列中选取待运行任务,还包括:如扫描完所有的用户后未能选取到待运行任务,则从所述分配条件中去除数据本地性要求,重新从所述等待资源分配的用户队列的头部开始扫描所述用户队列,每扫描到一个用户,判断所述用户是否具有待运行任务,如所述用户具有待运行任务,则扫描终止,从所述用户的待运行任务队列中选取待运行任务,如所述用户没有待运行任务,则扫描下一个用户。5.一种资源管理方法,应用于Hadoop系统的从节点,该方法包括:检测到空闲资源槽后,向主节点发送携带空闲资源槽信息的通知消息,所述空闲资源槽信息包括本节点的空闲资源槽的类型信息;接收所述主节点为本节点的空闲资源槽分配的待运行任务并将接收到的待运行任务放入任务启动队列中;在所述任务启动队列非空且当前存在空闲资源槽时,从所述任务启动队列中取出待运行任务进行启动。6.如权利要求5所述的方法,其特征在于:所述接收所述主节点分配的待运行任务并将接收到的待运行任务放入任务启动队列中,包括:将接收到的map任务放入map任务启动队列,将接收到的reduce任务放入reduce任务启动队列;所述在所述任务启动队列非空且当前存在空闲资源槽时,从所述任务启动队列中取出待运行任务进行启动,包括:如所述reduce任务启动队列非空且当前存在空闲资源槽,则从所述reduce任务启动队列中取出待运行任务进行启动;如所述reduce任务启动队列为空且所述map任务启动队列非空且当前存在空闲资源槽,则从所述map任务启动队列中取出待运行任务进行启动。7.一种资源管理装置,应用于Hadoop系统的主节点,包括:信息接收模块,用于获取从节点的空闲资源槽信息;任务调度模块,用于从等待资源分配的用户队列中选取用户,在选出用户后...

【专利技术属性】
技术研发人员:郑鹏飞
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

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

1