一种MapReduce系统及其调度任务的方法和装置的制作方法

文档序号:7758813阅读:125来源:国知局
专利名称:一种MapReduce系统及其调度任务的方法和装置的制作方法
技术领域
本发明涉及云计算技术领域,尤其涉及一种MapReduce系统及其调度任务的方法和装置。
背景技术
MapReduce系统是一种用于对海量数据进行并行处理的云计算系统。MapReduce 系统通过将用于对海量数据进行并行处理的多个子任务部署到统一的主节点上,由该主节点将各个子任务分配给进行实际数据处理的工作节点,从而实现海量数据的并行处理。其中的主节点和进行实际处理的工作节点一般是普通的个人电脑(PC机)。图1是目前MapReduce系统的组成及任务调度流程图。如图1所示,MapReduce系统由客户端(Client)、主节点(Master)和工作节点 (Worker)组成。图1中,客户端将用户撰写的并行处理作业提交至主节点,主节点将用户作业分解为合并(Map)任务和规约(Reduce)任务,并根据工作节点的执行任务请求将Map任务和 Reduce任务调度至工作节点,工作节点用于向主节点请求执行任务。目前,MapReduce系统可以支持多种任务调度策略,这些调度策略需要在每次系统启动前进行手工配置,且同时只能配置一种调度策略,换言之,MapReduce系统只能采用一种调度策略来对所有的作业任务进行调度。参加图1,目前MapReduce系统的作业提交和调度流程如下步骤101,工作节点向主节点进行注册。步骤102,用户通过客户端向主节点提交作业。步骤103,主节点接收到作业,并将作业放入目前系统配置的调度策略的作业队列中,对作业进行初始化,并等待工作节点请求任务。步骤104,工作节点向主节点发送心跳消息,并携带“是否请求任务”的标记。步骤105,主节点接收到工作节点发送的心跳消息,当“是否请求任务”的标记为是即工作节点请求任务时,主节点根据目前系统配置的调度策略,从队列中选择将要调度给该工作节点的任务。步骤106,主节点向工作节点返回该任务。可见,由于目前的MapReduce系统仅能配置一种调度策略,因此,当针对不同类型的应用时,目前的MapReduce系统也仅能根据当前配置的调度策略进行任务调度,这往往不能满足不同类型应用的需求。例如,在搜索引擎系统中利用MapReduce系统做数据抓取和反向索引的建立时, 作业类型比较单一,使用单一队列调度策略即可满足需求;在数据仓库中利用MapReduce 系统进行数据导入、为用户提供分布式查询和为管理员提供后台数据聚合维护时,需要系统支持多队列,分别满足不同类型作业的调度需求;在数据挖掘的应用中利用多次 MapReduce作业的迭代实现多种并行数据挖掘算法的实现,调度算法需要根据作业间的
5依赖关系进行调度等等。在以上应用场景中,每种应用所需的调度策略不同,由于底层 MapReduce系统同时只配置一种调度策略,因此导致系统进行任务调度的灵活性较差。

发明内容
有鉴于此,本发明提供了一种MapReduce系统及其调度任务的方法和装置,以便提高系统进行任务调度的灵活性。一种MapReduce系统调度任务的方法,该方法包括预先配置多种调度器、将系统资源划分为多个资源子网,并预先配置所述调度器与所述资源子网的对应关系;其中,每种调度器包括任务队列和调度策略;接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器,根据选出的调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。一种MapReduce系统,该系统包括资源配置模块、任务分配模块和多种调度器;其中,每种调度器包括任务队列和调度策略;所述资源配置模块,将系统资源划分为多个资源子网,配置调度器与资源子网的对应关系;所述任务分配模块,接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器;所述调度器,根据该调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。一种MapReduce系统调度任务的装置,该装置包括存储模块、任务分配模块和多个调度器;所述存储模块,存储所述多个调度器与预先从系统资源中划分出的多个资源子网的对应关系;所述任务分配模块,接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器;所述调度器,根据该调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。由上述技术方案可见,由于本发明的MapReduce系统同时配置了多种调度器,其中,每种调度器都包括调度策略和任务队列,每种调度器的调度策略一般不同,由于系统可以采用多个调度器进行任务调度,因此能够提高进行任务调度的灵活性。而且,由于本发明将系统资源划分为多个资源子网,并配置了调度器与资源子网的对应关系,不同的调度器采用不同资源子网中的资源进行任务处理,避免了不同调度器的任务之间争夺系统资源,提高了系统灵活性。


图1是目前MapReduce系统的组成及任务调度流程图。图2是本发明提供的MapReduce系统调度任务的方法流程图。图3是本发明提供的MapReduce系统的组成示意图。
图4是本发明提供的由主节点进行拓扑无关的资源子网划分时MapReduce系统的任务调度流程图。图5是本发明提供的由主节点进行拓扑相关的资源子网划分时MapReduce系统的任务调度流程图。图6是本发明提供的由工作节点进行拓扑无关的资源子网划分时MapReduce系统的任务调度流程图。图7是本发明提供的由工作节点进行拓扑相关的资源子网划分时MapReduce系统的任务调度流程图。图8是本发明提供的MapReduce系统调度任务的装置的结构图。
具体实施例方式图2是本发明提供的MapReduce系统调度任务的方法流程图。如图2所示,该方法包括步骤201,预先配置多种调度器、将系统资源划分为多个资源子网,并预先配置所述调度器与所述资源子网的对应关系。步骤202,接收作业任务,按照预定原则选出该作业任务对应的调度器,将该作业任务排列在该调度器的任务队列中。步骤203,接收工作节点的任务请求,选出该工作节点所在的资源子网对应的调度器,根据该调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。其中,调度器由调度策略和任务队列组成,MapReduce系统根据其可能处理的任务所属的应用类型,配置能够满足所述应用类型的需求的调度器,然后在接收到作业任务后, 按照该作业任务所属的应用类型选出该作业任务对应的调度器,将接收的作业任务排列在该调度器的任务队列中。当然,MapReduce系统也可以随机选择调度器,将接收的作业任务排列在该随机选择出的调度器的任务队列中。MapReduce系统可以由主节点将系统资源划分为多个资源子网,也可以由工作节点将系统资源划分为多个资源子网;并且,所述资源子网的划分可以是拓扑无关的,即资源子网是MapReduce系统所有工作节点的总资源量中预定比例的资源量,也可以是拓扑相关的,即配置每个资源子网由哪些工作节点组成。具体地,资源子网的划分方法分为以下四种第一种方法,由MapReduce系统的主节点配置资源子网的资源量占MapReduce系统所有工作节点的总资源量的比例,以及所述资源子网与所述调度器的对应关系。第二种方法,由MapReduce系统的工作节点配置允许每种调度器使用该工作节点的资源量占该工作节点的总资源量的比例,并将该配置的信息注册到主节点。第三种方法,由MapReduce系统的主节点配置每个资源子网由哪些工作节点组成。第四种方法,由MapReduce系统的工作节点配置该工作节点自身属于哪个资源子网,并将该配置的信息注册到主节点。
总之,由主节点划分资源子网可以实现资源的集中管理,实现资源的统一调度和管理,提高资源利用率;由工作节点划分资源子网可以减轻主节点的负荷,并且可以由工作节点根据自身情况配置该工作节点的资源属于哪一资源子网,提高资源子网配置的合理性;采用拓扑无关的资源子网划分方法,使得主节点可以灵活地选择工作节点进行任务处理;采用拓扑相关的资源子网划分方法,可以对作业任务的执行进行性能优化,如将同一机架上的工作节点分配给某个虚拟子网,即每个虚拟子网中的工作节点在同一机架上,这样可以减少数据的跨机架访问,降低网络和数据读写开销。同时,还可以实现不同应用的作业任务相互隔离不受影响。另外,在接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器时,为了使得各个调度器的资源占用更加公平合理,如果是由主节点进行拓扑无关的资源子网划分方式,则主节点在接收到工作节点的任务请求后,可以比较该 MapReduce系统的所有调度器中每种调度器当前已占用的资源量除以预先分配给该调度器对应的资源子网的总资源量的比值,选择比值最低的调度器,利用该调度器的调度策略从该调度器的任务队列中调度任务,如果是由工作节点进行拓扑无关的资源划分方式,则主节点在接收到工作节点的任务请求后,首先确定该工作节点对应哪些资源子网,然后确定这些资源子网对应的调度器已使用的资源除以相应资源子网的资源总量所得的比值,选择比值最低的调度器。如果资源子网的划分是拓扑相关的,则主节点接收工作节点的任务请求后,首先确定该工作节点属于哪些资源子网,然后确定这些资源子网对应的所有调度器并从中选择调度器,其中,可以从这些资源子网对应的所有调度器中随机选择调度器、或采用轮询方式选择调度器、或根据各个调度器已使用的资源量选择已使用的资源量最少的调度器。本发明还提供了一种MapReduce系统,具体请参见图3。图3是本发明提供的MapReduce系统的组成示意图。如图3所示,该系统包括资源配置模块301、任务分配模块302和多个调度器303。资源配置模块301,将系统资源划分为多个资源子网,配置调度器303与资源子网的对应关系。任务分配模块302,接收作业任务,按照预定原则选出该作业任务对应的调度器 303,将该作业任务排列在该调度器303的任务队列中;接收工作节点的任务请求,选出该工作节点所在的资源子网对应的调度器303。调度器303,根据该调度器303的调度策略从该调度器303的任务队列中调度任务,将调度出的任务返回给该工作节点。资源配置模块301可以位于MapReduce系统的主节点中,用于配置每个资源子网的资源量占MapReduce系统所有工作节点的总资源量的比例,或者配置每个资源子网由哪些工作节点组成。资源配置模块301也可以位于MapReduce系统的工作节点中,将资源子网信息以及调度策略与资源子网的对应关系注册到主节点。当资源配置模块301位于MapReduce系统的工作节点中时,资源配置模块301用于配置允许每种调度策略使用该工作节点的资源量占该工作节点的总资源量的比例,或者配置该工作节点自身属于哪个资源子网。
任务分配模块302,按照作业任务所属的应用类型选出该作业任务对应的调度器 303。当按照作业任务所属的应用类型选择对应的调度器时,可以实现将不同应用类型的作业任务分配到不同的调度器中,由于不同的调度器的调度策略一般不同,因此,能够为各种应用类型分别选择不同的调度策略,从而满足不同应用类型的需求,提高调度灵活性。任务分配模块302,比较工作节点所在的资源子网对应的所有调度器中,每种调度器当前已占用的资源量除以该资源子网的总资源量的比值,将该比值最低的调度器作为选出的调度器。在本发明的方法和系统中,调度器的个数和资源子网的个数可以相同也可以不同,调度器与资源子网可以一对一、一对多或多对一,即一种调度器对应一个资源子网、或者一种调度器对应多个资源子网,或者多种调度器对应一个资源子网。下面以调度器与资源子网采用一对一的对应关系、且根据作业任务所属应用类型进行任务分配为例,MapReduce系统进行任务调度的各种应用场景进行说明。图4是本发明提供的由主节点进行拓扑无关的资源子网划分时MapReduce系统的任务调度流程图。如图4所示,该流程包括步骤401,工作节点预先将自身的信息注册到主节点。步骤402,主节点预先配置多种调度器,并将系统资源划分为多个资源子网,配置调度策略器与资源子网之间的对应关系。其中的调度器包括调度策略和任务队列。本步骤中,主节点进行拓扑无关的资源子网划分。其中,步骤401 402是预处理步骤,以后每次对客户端提交的作业任务进行处理时,可以直接从步骤403开始执行。步骤403,客户端向MapReduce系统的主节点提交作业任务。步骤404,主节点判断客户端提交的作业任务属于哪种应用类型,将该作业任务提交至该应用类型对应的调度器的任务队列中,并等待工作节点的任务请求。其中,不同调度器的调度策略可以相同也可以不同,通常是不同的。步骤405,工作节点向主节点发送心跳消息,其中携带有“是否请求任务”的标记。步骤406,主节点判断工作节点发送的心跳消息中携带的所述标记是否为“真”,即工作节点是否请求任务,如果是,选择调度器。本步骤中,当该工作节点同时属于多个资源子网,且该多个资源子网对应多个调度器时,可以比较该多个调度器中每个调度器对应的任务已占用的资源量除以预先分配给该调度器对应的资源子网的资源总量的比值,选择比值最低的调度器。本步骤也可以采用其他策略选择需要进行任务调度的调度器,例如,可以从该工作节点所在资源子网对应的所有调度器中随机选择一个调度器。步骤407,根据选出的调度器的调度策略从选出的调度器的任务队列中调度任务, 将调度的任务发给该工作节点。图5是本发明提供的由主节点进行拓扑相关的资源子网划分时MapReduce系统的任务调度流程图。
如图5所示,该流程包括步骤501,工作节点预先将自身的信息注册到主节点。步骤502,主节点预先配置多种调度器,并将系统资源划分为多个资源子网,配置调度器与应用类型以及资源子网之间的对应关系。本步骤中,主节点进行拓扑相关的资源子网划分,例如,配置子网1使用第1-20号工作节点的资源,配置子网2使用第21-50号工作节点的资源。其中,步骤501 502是预处理步骤,以后每次对客户端提交的作业任务进行处理时,可以直接从步骤503开始执行。步骤503 505同步骤403 405。步骤506,主节点判断工作节点发送的心跳消息中携带的所述标记是否为“真”,即工作节点是否请求任务,如果是,根据该工作节点所属的资源子网选择需要进行任务调度的调度器。本步骤中,判断发送心跳消息的工作节点属于哪一资源子网,然后确定该资源子网对应哪些调度器,从确定出的所有调度器中选择出进行当前任务调度的调度器。其中,当该工作节点所属的资源子网对应了多个调度器时,可以从该多个调度器中随机选择进行当前任务调度的调度器,或者根据该多个调度器中每个调度器的任务队列已占用的资源量,从该多个调度器中选择已占用的资源量最少、或者已占用的资源量除以该资源子网的资源总量所得的比值最小的调度器进行当前的任务调度。步骤507,同步骤407。图6是本发明提供的由工作节点进行拓扑无关的资源子网划分时MapReduce系统的任务调度流程图。如图6所示,该流程包括步骤601,主节点配置多个调度器,以及调度器与资源子网的对应关系,工作节点配置该工作节点自身为每个资源子网提供的资源占该工作节点自身所有资源的比例。步骤602,工作节点预先将自身的信息注册到主节点。本步骤中,工作节点的注册信息除了包括该工作节点自身的属性信息外,还包括该工作节点为各个资源子网提供资源的信息,即工作节点划分资源子网的信息。步骤603,主节点记录工作节点的注册信息。其中,步骤601 603是预处理步骤,以后每次对客户端提交的作业任务进行处理时,可以直接从步骤604开始执行。步骤604 608同步骤403 407。图7是本发明提供的由工作节点进行拓扑相关的资源子网划分时MapReduce系统的任务调度流程图。如图7所示,该流程包括步骤701,本步骤与步骤601的区别在于,本步骤中工作节点进行拓扑相关的资源子网划分,即工作节点配置该工作节点自身属于哪一或哪些资源子网。步骤702 708,同步骤602 608。图8是本发明提供的MapReduce系统调度任务的装置的结构图。如图8所示,该装置包括存储模块801、任务分配模块802和多个调度器803。
存储模块801,存储所述多个调度器803与预先从系统资源中划分出的多个资源子网的对应关系。任务分配模块802,接收作业任务,按照预定策略选出该作业任务对应的调度器 803,将该作业任务排列在该调度器803的任务队列中;接收工作节点的任务请求,选出该工作节点所在的资源子网对应的调度器803。调度器803,根据该调度器803的调度策略从该调度器803的任务队列中调度任务,将调度出的任务返回给该工作节点。其中,任务分配模块802,可以按照作业任务所属的应用类型选出该作业任务对应的调度器803。其中,任务分配模块802,可以比较工作节点所在的资源子网对应的所有调度器中,每种调度器当前已占用的资源量除以该资源子网的总资源量的比值,将该比值最低的调度器作为选出的调度器。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种MapReduce系统调度任务的方法,其特征在于,该方法包括预先配置多种调度器、将系统资源划分为多个资源子网,并预先配置所述调度器与所述资源子网的对应关系;其中,每种调度器包括任务队列和调度策略;接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器,根据选出的调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括接收作业任务,按照预定原则选出该作业任务对应的调度器,将该作业任务排列在该调度器的任务队列中。
3.根据权利要求2所述的方法,其特征在于,所述按照预定策略选出该作业任务对应的调度器包括按照该作业任务所属的类型选出该作业任务对应的调度器。
4.根据权利要求1所述的方法,其特征在于,所述资源子网是MapReduce系统所有工作节点的总资源量中预定比例的资源量。
5.根据权利要求4所述的方法,其特征在于,由MapReduce系统的主节点配置资源子网的资源量占MapReduce系统所有工作节点的总资源量的比例,以及所述资源子网与所述调度器的对应关系。
6.根据权利要求4所述的方法,其特征在于,由MapReduce系统的工作节点配置允许每种调度器使用该工作节点的资源量占该工作节点的总资源量的比例,并将该配置的信息注册到主节点。
7.根据权利要求1所述的方法,其特征在于,所述资源子网是MapReduce系统中由预定工作节点的资源组成的资源集合。
8.根据权利要求7所述的方法,其特征在于,由MapReduce系统的主节点配置每个资源子网由哪些工作节点组成。
9.根据权利要求7所述的方法,其特征在于,由MapReduce系统的工作节点配置该工作节点自身属于哪个资源子网,并将该配置的信息注册到主节点。
10.根据权利要求4所述的方法,其特征在于,所述从该工作节点所在的资源子网对应的所有调度器中选择调度器包括比较该工作节点所在的资源子网对应的所有调度器中,每种调度器当前已占用的资源量除以预先分配给该调度器对应的资源子网的总资源量所得的比值,将该比值最低的调度器作为选出的调度器。
11.根据权利要求1至10任一权利要求所述的方法,其特征在于,预先配置所述调度器与所述资源子网的对应关系包括所述调度器与所述资源子网一一对应,或者一个调度器对应多个资源子网,或者多个调度器对应一个资源子网。
12.—种MapReduce系统,其特征在于,该系统包括资源配置模块、任务分配模块和多种调度器;其中,每种调度器包括任务队列和调度策略;所述资源配置模块,将系统资源划分为多个资源子网,配置调度器与资源子网的对应关系;所述任务分配模块,接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器;所述调度器,根据该调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。
13.根据权利要求12所述的系统,其特征在于,所述任务分配模块进一步用于,接收作业任务,按照预定原则选出该作业任务对应的调度器,将该作业任务排列在该调度器的任务队列中。
14.根据权利要求12所述的系统,其特征在于,所述资源配置模块位于MapReduce系统的主节点中。
15.根据权利要求14所述的系统,其特征在于,所述资源配置模块,配置每个资源子网的资源量占MapReduce系统所有工作节点的总资源量的比例,或者配置每个资源子网由哪些工作节点组成。
16.根据权利要求12所述的系统,其特征在于,所述资源配置模块位于MapReduce系统的工作节点中,该资源配置模块将资源子网信息以及调度器与资源子网的对应关系注册到主节点。
17.根据权利要求16所述的系统,其特征在于,所述资源配置模块,配置允许每种调度器使用该工作节点的资源量占该工作节点的总资源量的比例,或者配置该工作节点自身属于哪个资源子网。
18.根据权利要求13所述的系统,其特征在于,所述任务分配模块,按照作业任务所属的类型选出该作业任务对应的调度器。
19.根据权利要求12所述的系统,其特征在于,所述任务分配模块,比较工作节点所在的资源子网对应的所有调度器中,每种调度器当前已占用的资源量除以该资源子网的总资源量的比值,将该比值最低的调度器作为选出的调度器。
20.一种MapReduce系统调度任务的装置,其特征在于,该装置包括存储模块、任务分配模块和多个调度器;所述存储模块,存储所述多个调度器与预先从系统资源中划分出的多个资源子网的对应关系;所述任务分配模块,接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器;所述调度器,根据该调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。
21.根据权利要求20所述的装置,其特征在于,所述任务分配模块进一步用于,接收作业任务,按照预定原则选出该作业任务对应的调度器,将该作业任务排列在该调度器的任务队列中。
22.根据权利要求21所述的装置,其特征在于,所述任务分配模块,按照作业任务所属的应用类型选出该作业任务对应的调度器。
23.根据权利要求20所述的装置,其特征在于,所述任务分配模块,比较工作节点所在的资源子网对应的所有调度器中,每种调度器当前已占用的资源量除以预先分配给该调度器对应的资源子网的总资源量所得的比值,将该比值最低的调度器作为选出的调度器。
全文摘要
本发明提供了一种MapReduce系统及其调度任务的方法和装置。该方法包括预先配置多种调度器、将系统资源划分为多个资源子网,并预先配置所述调度器与所述资源子网的对应关系;其中,每种调度器包括任务队列和调度策略;接收工作节点的任务请求,从该工作节点所在的资源子网对应的所有调度器中选择调度器,根据选出的调度器的调度策略从该调度器的任务队列中调度任务,将调度出的任务返回给该工作节点。应用本发明能够提高系统进行任务调度的灵活性,增加了系统的适用场景。
文档编号H04L29/08GK102387173SQ20101027058
公开日2012年3月21日 申请日期2010年9月1日 优先权日2010年9月1日
发明者孙宏伟, 孙少陵, 罗治国, 郭磊涛 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1