基于主从架构的MapReduce任务跨数据中心调度系统及方法

文档序号:6620652阅读:230来源:国知局
基于主从架构的MapReduce任务跨数据中心调度系统及方法
【专利摘要】本发明提供一种基于主从架构的MapReduce任务跨数据中心调度系统及方法,其特征在于,建立MapReduce任务全局任务调度中心,负责管理各数据中心的资源管理器,接收客户端Client提交的MapReduce任务请求,根据预设调度算法选择满足要求的数据中心;各数据中心的资源管理器定时将本中心的状态和任务执行信息同步至全局任务调度中心。本发明所述系统及方法实现了MapReduce任务的跨数据中心调度,为跨数据中心的MapReduce任务提供统一入口,有效实现了各数据中心的数据和计算资源共享。
【专利说明】基于主从架构的MapReduce任务跨数据中心调度系统及方 法

【技术领域】
[0001] 本申请涉及云计算技术,特别涉及一种MapReduce (用于大规模数据集并行运算 的编程模型)任务调度系统及方法。

【背景技术】
[0002] 云计算(Cloud Computing)是随着处理器技术、虚拟化技术、分布式存储技术、互 联网技术和自动化管理技术的发展而产生的,由分布式的大规模集群和服务器虚拟化软件 搭建。目前以开源社区Apache的Hadoop项目分布式文件系统(Hadoop Distributed File System,简称HDFS)和并行编程框架Hadoop MapReduce为代表的技术逐渐成为海量数据存 储与分析处理的主流技术。其中,Hadoop MapReduce是当前使用最广泛的海量数据分析技 术。
[0003] 基于Hadoop YARN平台的MapReduce系统如图1所示,主要由 ResourceManager (资源管理器)、NodeManager (节点管理器)、AppMaster (应用程序管理 器)、Container (执行数据任务的容器)和Client (客户端)组成。资源管理器管理集群 内所有应用程序的计算资源的分配。节点管理器是每一台机器框架的代理,是执行应用程 序的容器,并监控应用程序的资源使用情况(CPU、内存、硬盘、网络)同时向节点管理器汇 报。应用程序管理器负责本应用内的调度和协调,是MapReduce作业的Master,它结合从资 源管理器获得的资源和节点管理器协同工作来运行和监控任务。资源管理器和节点管理器 可以管理用户在该台机器上的进程并能对计算进行组织。Container管理着一个JVM (Java 虚拟机)进程,是执行应用程序的容器,负责执行Map (映射)或者Reduc (归约)任务。
[0004] 目前,Hadoop MapReduce被众多企业、高校、科研院所等广泛应用于数据中心的数 据分析中,但这些分析任务主要在单个数据中心中进行,数据中心之间的处理任务很难开 展。随着越来越多分散在各处的独立中小型数据中心的建立,如何实现各数据中心的数据 资源和计算资源有效共享,为数据分析应用提供统一的任务提交入口,提高数据分析效率, 越来越成为大家关注的问题。目前关于MapReduce任务跨数据中心的调度技术未见有具体 的公开报道,是当前亟待解决的问题。


【发明内容】

[0005] 本发明的目的是提供一种能实现各数据中心的数据及计算资源共享,为数据分析 应用提供统一任务提交入口,提高数据分析效率的跨数据中心MapReduce任务调度的系统 及方法。
[0006] 为达到以上目的,本发明是采取如下技术方案予以实现的:
[0007] -种基于主从架构MapReduce任务跨数据中心的调度系统,其特征在于,
[0008] 包括一个全局任务调度中心、η个数据中心、一个客户端,各数据中心均有一个资 源管理器和多个节点管理器,其中全局任务调度中心与客户端、各数据中心的资源管理器 采用广域网链接;各数据中心的资源管理器与节点管理器之间由局域网链接;各数据中心 的资源管理器中均包含一个GSS plugin模块,用于向全局任务调度中心注册并定时汇报本 数据中心状态信息,从而构成主从式任务调度架构;全局任务调度中心接收客户端提交的 MapReduce任务请求,按照预设的选择算法从所述各数据中心中选择资源和性能满足要求 的一个或多个数据中心,并按照预设任务分派算法将MapReduce任务分派至所选数据中心 的资源管理器;该资源管理器在本数据中心内启动MapReduce任务执行,任务执行后实时 将本数据中心状态和任务执行信息同步至全局任务调度中心;客户端实时从全局任务调度 中心获取MapReduce任务执行信息,直至MapReduce任务结束。
[0009] 一种基于主从架构MapReduce任务跨数据中心的调度方法,其特征在于,包括下 述步骤:
[0010] (1)建立全局任务调度中心,负责多个数据中心的状态监控和MapReduce任务调 度,各数据中心的资源管理器向全局任务调度中心注册,并定时汇报本数据中心的状态信 息,全局任务调度中心收集各数据中心的资源状态和任务执行信息;
[0011] (2)全局任务调度中心接收客户端提交的MapReduce任务请求,按预设选择算法 遴选资源和性能满足要求的一个或几个数据中心,并按照预设任务分派算法将任务分派至 所选数据中心的资源管理器;
[0012] (3)接收到MapReduce任务的资源管理器在本中心内启动MapReduce任务执行;
[0013] (4)各数据中心的资源管理器负责收集本数据中心的资源状态信息和监控 MapReduce任务的执行,并定时将资源状态和MapReduce任务执行信息同步至全局任务调 度中心;
[0014] (5)客户端实时从全局任务调度中心获取MapReduce任务执行状态信息,直至 MapReduce任务结束。
[0015] 上述方法中,所述MapReduce任务请求包括Map和Reduce的输入数据路径、输出 数据路径、Map和Reduce任务个数、任务优先级、资源权限任何一特征。
[0016] 所述全局任务调度中心预设调度算法根据任务请求和各数据中心的数据分布、系 统性能、负载情况等信息,采用数据分布优先、性能优先策略。
[0017] 本发明的MapReduce任务跨数据中心的调度系统采用两层逻辑分离调度架构。全 局逻辑层由全局任务调度中心负责各数据中心的资源管理器的管理,集中管理各数据中心 的状态和任务执行信息,是将各个独立数据中心集成统一实现资源共享的核心,是主从架 构中的主控模块。业务逻辑层通过对HadoopYARN的资源管理器进行扩展开发,增加 GSS plugin模块,并与全局任务调度中心链接作为从属模块,从而构成主从式MapReduce任务 调度架构。本发明在保留原数据中心的资源管理器的中心内部任务调度管理等功能的同 时,接受全局任务调度中心的调度管理,最终实现各数据中心的MapReduce任务的数据和 计算资源共享。这种方式在保持原系统高效稳定的同时降低系统复杂度,能够快速有效实 现MapReduce任务的跨数据中心调度。

【专利附图】

【附图说明】
[0018] 图1为基于Hadoop YARN平台的MapReduce系统框架图。
[0019] 图2为本发明MapReduce任务跨数据中心调度系统组成图。
[0020] 图3为本发明MapReduce任务跨数据中心调度流程图。

【具体实施方式】
[0021] 为了更清楚地说明本发明的技术方案,下面结合附图和具体实施例对本发明进行 详细描述。
[0022] 如图2所示,一种基于主从架构的MapReduce任务跨数据中心的调度系统,包括一 个全局任务调度中心(Global Scheduling Server,GSS)、编号为01到N的η个数据中心、 一个客户端Client。各数据中心均有一个资源管理器(ResourceManager)和多个节点管理 器(NodeManager)。全局任务调度中心和各数据中心的资源管理器采用广域网链接,客户端 Client和全局任务调度中心由广域网链接,各数据中心的资源管理器与节点管理器之间由 局域网链接。各数据中心的资源管理器中均包含一个GSS plugin(全局任务调度中心通信 中间件)模块,该模块与全局任务调度中心相链接,负责向全局任务调度中心注册并定时 向全局任务调度中心汇报本数据中心状态信息,从而构成主从式任务调度架构。
[0023] 全局任务调度中心接收客户端提交的MapReduce任务请求,按照预设的选择算法 从各数据中心中选择资源和性能满足要求的数据中心(一个或者多个),并按照预设任务 分派算法将任务分派至所选数据中心的资源管理器;各数据中心的资源管理器在本中心内 按预设调度算法,启动MapReduce任务调度,任务启动执行后实时将数据中心资源状态和 任务执行信息同步至全局任务调度中心。
[0024] 全局任务调度中心用于跨数据中心的任务调度,管理各数据中心的资源管理器, 实时收集各数据中心的性能和任务执行信息;接收客户端提交的MapReduce任务请求,根 据预设调度算法选择满足要求的数据中心并将任务分派给所选数据中心的资源管理器。
[0025] 全局任务调度中心主要由访问接口、GSS服务程序、任务分派与监控三个模 板组成;访问接口是客户端与全局任务调度中心的交互接口模块,负责处理客户端的 MapReduce任务的提交、终止、状态查询等请求;GSS服务程序是全局任务调度中心的服务 守护模块,负责全局任务调度中心的运行监控、模块重启,保证全局任务调度中心的稳定运 行;任务分派与监控是各数据中心的资源管理器与全局任务调度中心的交互接口模块,负 责管理各数据中心的资源管理器,根据各数据中心状态对访问接口模块接收到MapReduce 任务实施任务分派,并监控MapReduce任务在各数据中心的执行。
[0026] GSS plugin模块,是一个用于与全局任务调度中心进行通信的中间件,负责向全 局任务调度中心注册,接收全局任务调度中心的任务分派,并定时向全局任务调度中心汇 报本数据中心状态信息和MapReduce任务执行信息。
[0027] 各数据中心的资源管理器(含GSS plugin模块)负责本数据中心内的资源管理 和任务调度;接收本数据中心内节点管理器的资源汇报信息;通过GSSplugin模块接受GSS 分派的MapReduce任务,并根据任务信息和本数据中心状态实施任务调度,定时将任务和 资源信息同步至GSS。
[0028] 各数据中心的节点管理器用于管理MapReduce任务在本节点上的具体执行,监控 MapReduce任务的资源使用情况(CPU、内存、硬盘、网络等),并按预置算法定时地将任务执 行情况和本节点资源情况发送给本数据中心的资源管理器。
[0029] Client用于与GSS进行交互,如提交或终止MapReduce任务,获取MapReduce任务 运行状态等;Client可实时从GSS获取任务执行状态。
[0030] 图2中的数据中心的个数η可选1至200个。
[0031] 通过上述系统,本发明提供了一种跨数据中心的MapReduce任务调度方法,下面 通过图3进行描述:
[0032] S301建立全局任务调度中心,负责管理各数据中心的资源管理器,各数据中心的 资源管理器向全局任务调度中心注册并汇报集数据中心态信息,全局任务调度中心收集各 数据中心状态和MapReduce任务的执行信息;
[0033] S302全局任务调度中心接收客户端Client提交的MapReduce任务请求,按预设算 法选择满足要求的数据中心,将任务分派至所选数据中心的资源管理器;
[0034] 所述MapReduce任务请求包括Map和Reduce的输入数据路径、输出数据路径、Map 和Reduce任务个数、输入数据在各数据中心的分布、任务优先级、资源权限等特征。
[0035] 全局任务调度中心预设调度算法根据任务请求和各数据中心的数据分布、系统性 能、负载情况等信息,采用数据分布优先、性能优先等策略,分派任务至数据中心的资源管 理器;调度算法可由本领域技术人员根据需要灵活定制;
[0036] S303接收任务的数据中心的资源管理器在本数据中心内按预设调度算法,启动 MapReduce任务调度;
[0037] 预设调度算法根据包括输入数据大小、输入数据在集群内各节点的分布、任务 的Map和Reduce数量、各节点管理器反馈的资源使用状态等信息,按照预设先进先出 FIFO (First in First out)、公平调度策略进行调度,调度算法也可由本领域技术人员根据 需要开发定制;
[0038] S304各数据中心的资源管理器实时将数据中心的资源使用、性能等状态和 MapReduce任务执行信息同步至全局任务调度中心;
[0039] S305客户端Cl ient实时从全局任务调度中心获取MapReduce任务执行状态信息, 直至MapReduce任务结束。
[0040] 综上所述,本发明解决了随着分散各处的独立中小型数据中心越来越多,而难以 实现各数据中心的数据资源和计算资源有效共享,以及如何为数据分析应用提供统一的 MapReduce任务提交入口等问题,实现了统一管理、统一接口,开放稳定的针对跨数据中心 的MapReduce任务调度架构及方法。
【权利要求】
1. 一种基于主从架构MapReduce任务跨数据中心的调度系统,其特征在于,包括一个 全局任务调度中心、η个数据中心、一个客户端,各数据中心均有一个资源管理器和多个节 点管理器,其中全局任务调度中心与客户端、各数据中心的资源管理器采用广域网链接;各 数据中心的资源管理器与节点管理器之间由局域网链接;各数据中心的资源管理器中均 包含一个GSS plugin模块,用于向全局任务调度中心注册并定时汇报本数据中心状态信 息,从而构成主从式任务调度架构;全局任务调度中心接收客户端提交的MapReduce任务 请求,按照预设的选择算法从所述各数据中心中选择资源和性能满足要求的一个或多个 数据中心,并按照预设任务分派算法将MapReduce任务分派至所选数据中心的资源管理 器;该资源管理器在本数据中心内启动MapReduce任务执行,任务执行后实时将本数据中 心状态和任务执行信息同步至全局任务调度中心;客户端实时从全局任务调度中心获取 MapReduce任务执行信息,直至MapReduce任务结束。
2. -种基于主从架构MapReduce任务跨数据中心的调度方法,其特征在于,包括下述 步骤: (1) 建立全局任务调度中心,负责多个数据中心的状态监控和MapReduce任务调度,各 数据中心的资源管理器向全局任务调度中心注册,并定时汇报本数据中心的状态信息,全 局任务调度中心收集各数据中心的资源状态和任务执行信息; (2) 全局任务调度中心接收客户端提交的MapReduce任务请求,按预设选择算法遴选 资源和性能满足要求的一个或几个数据中心,并按照预设任务分派算法将任务分派至所选 数据中心的资源管理器; (3) 接收到MapReduce任务的资源管理器在本中心内启动MapReduce任务执行; (4) 各数据中心的资源管理器负责收集本数据中心的资源状态信息和监控MapReduce 任务的执行,并定时将资源状态和MapReduce任务执行信息同步至全局任务调度中心; (5) 客户端实时从全局任务调度中心获取MapReduce任务执行状态信息,直至 MapReduce任务结束。
3. 如权利要求2所述的基于主从架构MapReduce任务跨数据中心的调度方法,其特征 在于,所述MapReduce任务请求包括Map和Reduce的输入数据路径、输出数据路径、Map和 Reduce任务个数、任务优先级、资源权限任何一特征。
4. 如权利要求2所述的基于主从架构MapReduce任务跨数据中心的调度方法,其特征 在于,所述全局任务调度中心预设调度算法根据任务请求和各数据中心的数据分布、系统 性能、负载情况等信息,采用数据分布优先、性能优先策略定制。
【文档编号】G06F9/48GK104123182SQ201410344242
【公开日】2014年10月29日 申请日期:2014年7月18日 优先权日:2014年7月18日
【发明者】张未展, 张汉宁, 郑庆华, 董博, 贺欢 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1