资源调度方法、信息管理方法和装置及任务部署系统与流程

文档序号:18142143发布日期:2019-07-10 11:11阅读:290来源:国知局
资源调度方法、信息管理方法和装置及任务部署系统与流程

本申请涉及计算机技术领域,特别涉及一种资源调度方法、信息管理方法和装置及任务部署系统。



背景技术:

在业界,大数据(bigdata)有多种定义,例如研究机构gartner给出的定义为:大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。大数据可以应用于多种场景,例如大规模并行处理数据库、数据挖掘电网、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统等。通过与大数据相关的技术对数据进行“加工”,从而提高了数据的应用价值。

随着大数据业务的飞速发展,数据中心(datacenter,dc)集群的规模也逐步扩大,需要通过集群资源调度系统来对dc集群的资源进行统一调度。相关技术中,dc集群的每个dc中均设置有一个独立的分布式资源调度系统和一个独立的分布式文件系统,每个dc通过分布式文件系统实现本地数据的存储和管理,通过分布式资源调度系统实现本地资源的调度和管理,各个dc之间定期进行跨dc的数据同步,保证每个dc都能够获取到其他dc上的数据以执行任务。

在实现本申请的过程中,发明人发现现有技术至少存在以下问题:在一个dc中发起的任务需要跨dc的数据来执行的情况下,现有技术使用定时将其他dc的数据同步到该dc上的方式在该dc中执行,这样该任务的处理延时较大,且数据的同步造成了资源的浪费。



技术实现要素:

为了解决现有技术中dc只能采用本地资源执行任务的问题,本发明实施例提供了一种资源调度方法、信息管理方法和装置及任务部署系统,使得dc能够利用其他dc的资源执行任务,无需先将其他dc上的数据同步到本地,从而减小了任务处理延时。所述技术方案如下:

第一方面,提供了一种任务部署系统,所述任务部署系统包括第一计算节点和第一资源管理器节点,所述第一计算节点和第一资源管理器节点属于第一数据中心;

所述第一计算节点,用于向第一资源管理器节点发送第一任务部署请求,所述第一任务部署请求包括一任务的标识、一数据中心的标识和所述数据中心中一计算节点的标识,所述数据中心的标识用于指示将部署所述任务的数据中心;所述第一资源管理器节点,用于接收所述第一计算节点发送的第一任务部署请求;在所述数据中心的标识指示除所述第一数据中心之外的数据中心的情况下,向所述数据中心的标识对应的数据中心中的资源管理器节点发送第二任务部署请求,所述第二任务部署请求用于向所述数据中心部署所述任务,所述第二任务部署请求包括所述数据中心的标识、所述任务的标识和所述数据中心中一计算节点的标识。

本申请提供了一种任务部署系统,包括计算节点和资源管理器节点,计算节点在执行任务时,向同数据中心内的资源管理节点发送任务部署请求,该资源管理请求中携带要执行的任务的标识,以及任务所要处理的数据所在的数据中心和计算节点的标识,资源管理器节点接收任务部署请求,在任务部署请求包括其他数据中心的标识时,则将任务部署请求发送到其他数据中心,由其他具有待执行的任务所需处理的数据所在的数据中心来部署该任务,这样在本地没有任务所需的数据时,可以实现任务的异地处理,实现了异地数据的实时共享,无需依靠数据同步将其他数据中心的数据同步到本地,任务处理延时较小,减少了资源浪费。

其中,第一任务部署请求和第二任务部署请求可以相同也可以不同。例如,第一任务部署请求只对应一个任务,而第二任务部署请求对应的也是该任务,此时两者可以相同;第一任务部署请求对应两个任务,而第二任务部署请求只对应一个任务,此时两者不同。

其中,第一计算节点待执行的任务可以为一个或多个,每个任务所需处理的数据可以包括一个或多个文件,这一个或多个文件可以保存在同一数据中心中,也可以保存在不同的数据中心中。

在第一方面一示例性的实现方式中,所述任务部署系统还包括元数据服务器;所述数据中心的标识为第二数据中心的标识,所述数据中心中一计算节点的标识为第二计算节点的标识,所述第一计算节点,还用于向所述元数据服务器发送位置信息请求,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的数据中心和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据;所述元数据服务器,用于接收所述位置信息请求;以及根据所述位置信息请求,向所述第一计算节点发送位置信息应答,所述位置信息应答包括所述第二数据中心的标识和所述第二计算节点的标识;所述第一计算节点,用于接收所述位置信息应答。

在该实现方式中,任务部署系统通过布置元数据服务器来提供位置信息查询服务,各个数据中心的计算节点均可以通过请元数据服务器发送请求,来获取任务所需数据的位置信息,从而为跨数据中心的任务部署提供基础。

其中,元数据服务器提供了供数据中心查询数据的位置信息的接口。例如,元数据服务器提供两个应用程序编程接口来供数据中心获取数据的位置信息。一个接口为map<string,filestatus>getcrossdcfilestatus(pathpath)–,该接口用于获取数据所在的数据中心的信息,如数据中心的标识。另一个接口为map<string,locatedfilestatus>getcrossdclocatedfilestatus(pathpath)–,该接口用于获取数据所在的数据中心的信息和计算节点的信息,例如数据中心的标识和计算节点的标识。

在第一方面一示例性的实现方式中,所述数据中心的标识为第二数据中心的标识,所述数据中心中一计算节点的标识为第二计算节点的标识,所述第一资源管理器节点,用于接收来自所述第二数据中心中第二资源管理器节点的第一资源分配消息,所述第一资源分配消息用于指示所述任务可以向所述第二计算节点部署;所述第一计算节点,用于向所述第二计算节点发送任务执行请求,所述任务执行请求包括所述任务的标识和数据标识,所述数据标识用于指示所述第二计算节点中执行所述任务所需的数据。

在该实现方式中,在跨数据中心的任务部署过程中,第二数据中心通过资源分配信息来指示第一数据中心的第一计算节点可以向第二数据中心的第二计算节点部署任务,第一计算节点在收到资源分配消息后,向所述第二计算节点发送任务执行请求。

其中,资源分配信息可以包括分配给任务的资源,例如包括容器标识。

可选地,所述第一计算节点,还用于接收所述第二计算节点返回的任务执行结果。

在第一方面一示例性的实现方式中,所述第一任务部署请求中包括多个数据中心的标识,所述多个数据中心的标识用于指示能够部署所述任务的多个数据中心,所述第一资源管理节点,还用于根据资源分配策略从所述多个数据中心中确定将部署所述任务的数据中心。

其中,所述资源分配策略可以包括调度策略,所述调度策略为下述任一种:在所述任务无法部署在所述第一计算节点的情况下,允许所述任务被部署在任一拥有空闲资源的数据中心的计算节点上;在所述任务无法部署在所述第一计算节点的情况下,允许所述任务优先被部署在所述第一数据中心的与所述第一计算节点位于同个机架上的其他计算节点上;在所述任务无法部署在所述第一计算节点的情况下,允许所述任务优先被部署在所述第一数据中心的其他计算节点上。

可选地,所述资源分配策略还可以包括在采用所述调度策略确定出两个或两个以上数据中心的情况下,根据以下至少一种数据中心的属性信息选择数据中心:两个或两个以上数据中心的优先级、两个或两个以上数据中心中每个数据中心的空闲资源的容量或比例、两个或两个以上数据中心中的每个数据中心的资源管理器节点与所述第一资源管理器节点之间的网络带宽的大小。

可选地,所述任务部署系统还包括分布式文件系统的主节点;所述元数据服务器,用于向所述主节点发送位置信息查询请求,所述位置信息查询请求包括数据标识;所述主节点,用于接收所述元数据服务器发送的位置信息查询请求;根据所述位置信息查询请求确定所述主节点所在的数据中心是否存在所述数据标识对应的数据;向所述元数据服务器返回位置信息查询应答,所述位置信息查询应答包括以下信息中的至少一个:所述主节点所在的数据中心的数据中心标识和所述数据标识对应的数据所处的计算节点的计算节点标识,或者所述位置信息查询应答用于指示所述主节点所在的数据中心中不存在所述数据标识对应的数据。

第二方面,提供了一种资源调度方法,所述方法用于第一数据中心的第一资源管理器节点,所述第一数据中心中还包括第一计算节点,所述方法包括:接收所述第一计算节点发送的第一任务部署请求,所述第一任务部署请求包括一任务的标识、一数据中心的标识和所述数据中心中一计算节点的标识,所述数据中心的标识用于指示将部署所述任务的数据中心;在所述数据中心的标识指示除所述第一数据中心之外的数据中心的情况下,向所述数据中心的标识对应的数据中心中的资源管理器节点发送第二任务部署请求,所述第二任务部署请求用于向所述数据中心部署所述任务,所述第二任务部署请求包括所述数据中心的标识、所述任务的标识和所述数据中心中一计算节点的标识。

在该实现方式中,资源管理器节点接收同数据中心的计算节点发送的任务部署请求,该资源管理请求中携带要执行的任务的标识,以及任务所要处理的数据所在的数据中心和计算节点的标识,在任务部署请求包括其他数据中心的标识时,则将任务部署请求发送到其他数据中心,由其他具有待执行的任务所需处理的数据所在的数据中心来部署该任务,这样在本地没有任务所需的数据时,可以实现任务的异地处理,实现了异地数据的实时共享,无需依靠数据同步将其他数据中心的数据同步到本地,任务处理延时较小,减少了资源浪费。

在第二方面一示例性的实现方式中,所述第一任务部署请求中包括多个数据中心的标识,所述多个数据中心的标识用于指示能够部署所述任务的多个数据中心,所述方法还包括:根据资源分配策略从所述多个数据中心中确定将部署所述任务的数据中心。

在该实现方式中,资源管理器节点通过资源分配策略来确定部署所述任务的数据中心,一方面可以通过设置不同的资源分配策略来满足不同的调度需求,另一方面,通过资源分配策略能够实现资源的自动调度。

其中,资源分配策略可以携带在所述任务部署请求中,使得资源管理器节点可以直接根据任务部署请求确定资源分配策略,流程简单便捷。

在第二方面一示例性的实现方式中,所述资源分配策略包括调度策略,所述调度策略为下述任一种:在所述任务无法部署在所述第一计算节点的情况下,允许所述任务被部署在任一拥有空闲资源的数据中心的计算节点上;在所述任务无法部署在所述第一计算节点的情况下,允许所述任务优先被部署在所述第一数据中心的与所述第一计算节点位于同个机架上的其他计算节点上;在所述任务无法部署在所述第一计算节点的情况下,允许所述任务优先被部署在所述第一数据中心的其他计算节点上。

在该实现方式中,调度策略可以采用多种方式设置,从而满足用户的多样化需求;且在这些策略中,优先采用本地资源进行处理,以保证任务执行速度。

在第二方面一示例性的实现方式中,所述资源分配策略还包括在采用所述调度策略确定出两个或两个以上数据中心的情况下,根据以下至少一种数据中心的属性信息选择数据中心:两个或两个以上数据中心的优先级、两个或两个以上数据中心中每个数据中心的空闲资源的容量或比例、两个或两个以上数据中心中的每个数据中心的资源管理器节点与所述第一资源管理器节点之间的网络带宽的大小。

在该实现方式中,在调度策略无法确定出具体的数据中心时,按照优先级、空闲资源多少、网络带宽等选择最优数据中心来提供资源,保证资源的合理调度。

可选地,资源分配策略还可以限定资源的选择范围或选择条件,在确定数据中心时按照该选择范围或选择条件选取。例如,资源的选择范围为数据中心1的1-10节点。资源的选择条件为具有图形处理器、大存储或大内存的数据中心的计算节点等。

在第二方面一示例性的实现方式中,所述第二任务部署请求为所述第一资源管理器节点和所述第二资源管理器节点之间的心跳消息,所述心跳消息包括所述数据中心的标识、所述任务的标识和所述数据中心中一计算节点的标识。

在该实现方式中,任务部署请求通过数据中心间的心跳消息传输,实现简单。

在第二方面一示例性的实现方式中,所述数据中心的标识为第二数据中心的标识,所述数据中心中一计算节点的标识为第二计算节点的标识,所述方法还包括:接收来自所述第二数据中心中第二资源管理器节点的第一资源分配消息,所述第一资源分配消息用于指示所述任务可以向所述第二计算节点部署;向所述第二计算节点发送任务执行请求,所述任务执行请求包括所述任务的标识和数据标识,所述数据标识用于指示所述第二计算节点中执行所述任务所需的数据。

在该实现方式中,数据中心资源管理器除了向其他数据中心发送任务部署请求外,也会接收其他数据中心发送的任务部署请求,从而根据任务部署请求为其他数据中心的计算节点分配资源。

在第二方面一示例性的实现方式中,所述方法还包括:接收第三资源管理器节点发送的第三任务部署请求,所述第三任务部署请求包括所述第一数据中心的标识、第一任务的标识和所述第一数据中心中的第三计算节点的标识,所述第三资源管理器节点属于第三数据中心;向所述第三资源管理器节点发送第二资源分配消息,所述第一资源分配消息用于指示所述第一任务可以向所述第三计算节点部署。

在该实现方式中,资源分配的结果通过资源分配消息返回给发送所述任务部署请求的数据中心,使得发送所述任务部署请求的数据中心可以采用资源分配消息指定的资源执行任务。

第三方面,提供了一种资源调度方法,所述方法用于第一数据中心的第一计算节点,所述第一数据中心中还包括第一资源管理器节点,所述方法包括:向元数据服务器发送位置信息请求,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的数据中心和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据;接收所述元数据服务器发送的位置信息应答,所述位置信息应答包括第二数据中心的标识和第二计算节点的标识,所述第二计算节点属于所述第二数据中心;向所述第一资源管理器节点发送第一任务部署请求,所述第一任务部署请求包括一任务的标识、一数据中心的标识和所述数据中心中一计算节点的标识,所述数据中心的标识用于指示将部署所述任务的数据中心;接收所述第一资源管理器节点发送的第一资源分配消息,所述第一资源分配消息用于指示所述任务可以向所述第二计算节点部署。

在第三方面一示例性的实现方式中,所述方法还包括:向所述第二计算节点发送任务执行请求,所述任务执行请求包括所述任务的标识和数据标识,所述数据标识用于指示所述第二计算节点中执行所述任务所需的数据。

第四方面,提供了一种信息管理方法,所述方法包括:元数据服务器接收第一计算节点发送的位置信息请求,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的数据中心和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据,所述第一计算节点属于第一数据中心;根据所述位置信息请求,向所述第一计算节点发送位置信息应答,所述位置信息应答包括所述数据标识对应的数据所在的数据中心的标识和计算节点的标识。

在第四方面一示例性的实现方式中,所述方法还包括:根据所述数据标识确定第二数据中心,所述第二数据中心为所述数据标识对应的数据所在的数据中心;向所述第二数据中心的主节点发送位置信息查询请求,所述位置信息查询请求包括数据标识,所述第二数据中心的主节点为所述第二数据中心的分布式文件系统的主节点;接收所述第二数据中心的主节点返回的位置信息查询应答,所述位置信息查询应答包括所述数据标识对应的数据所在的计算节点的标识;或者,所述方法还包括:向多个数据中心的主节点发送位置信息查询请求,所述位置信息查询请求包括数据标识,所述多个数据中心中的每个数据中心的主节点为每个数据中心的分布式文件系统的主节点;接收所述第一主节点返回的位置信息查询应答,所述位置信息查询应答包括以下信息中的至少一个:所述数据标识对应的数据所在的数据中心和计算节点的标识,或者所述位置信息查询应答用于指示所述第一主节点所在的数据中心中不存在所述数据标识对应的数据,所述第一主节点为所述多个数据中心中的任一个数据中心的分布式文件系统的主节点。

在第四方面一示例性的实现方式中,所述方法还包括:接收第三数据中心的主节点发送的数据同步消息,所述数据同步消息用于指示所述第三数据中心中通过数据操作而变动的第一数据,所述数据操作包括以下至少一种:创建数据、删除数据和向其他数据中心同步数据,所述第三数据中心的主节点为所述第三数据中心的分布式文件系统的主节点;根据所述数据同步消息,记录所述第一数据在变动后对应的数据中心。

第五方面,本发明实施例提供了一种资源调度装置,所述资源调度装置包括用于实现第二方面中任意一种可能的实施方式提供的方法的单元,例如接收单元和发送单元。

第六方面,本发明实施例提供了一种资源调度装置,所述资源调度装置包括用于实现第三方面中任意一种可能的实施方式提供的方法的单元,例如发送单元和接收单元。

第七方面,本发明实施例提供了一种信息管理装置,所述资源调度装置包括用于实现第四方面中任意一种可能的实施方式提供的方法的单元,例如接收单元和发送单元。

第八方面,本发明实施例提供了一种资源调度装置,所述装置包括:处理器、存储器以及通信接口;所述处理器、存储器以及通信接口通过总线耦合,所述存储器用于存储软件程序,当所述处理器用于运行或执行所述存储器内的软件程序时,能够通过所述通信接口执行第二方面中任意一种可能的实施方式提供的方法。

第九方面,本发明实施例提供了一种资源调度装置,所述装置包括:处理器、存储器以及通信接口;所述处理器、存储器以及通信接口通过总线耦合,所述存储器用于存储软件程序,当所述处理器用于运行或执行所述存储器内的软件程序时,能够通过所述通信接口执行第三方面中任意一种可能的实施方式提供的方法。

第十方面,本发明实施例提供了一种信息管理装置,所述装置包括:处理器、存储器以及通信接口;所述处理器、存储器以及通信接口通过总线耦合,所述存储器用于存储软件程序,当所述处理器用于运行或执行所述存储器内的软件程序时,能够通过所述通信接口执行第四方面中任意一种可能的实施方式提供的方法。

第十一方面,本发明实施例还提供了一种计算机可读介质,用于存储供资源调度装置执行的程序代码,所述程序代码包括执行第二方面中任意一种可能的实施方式提供的方法的指令。

第十二方面,本发明实施例还提供了一种计算机可读介质,用于存储供资源调度装置执行的程序代码,所述程序代码包括执行第三方面中任意一种可能的实施方式提供的方法的指令。

第十三方面,本发明实施例还提供了一种计算机可读介质,用于存储供信息管理装置执行的程序代码,所述程序代码包括执行第四方面中任意一种可能的实施方式提供的方法的指令。

附图说明

图1是本发明实施例提供的一种dc集群的结构示意图;

图2是本发明实施例提供的一种装置的结构示意图;

图3a-图3c是本发明实施例提供的一种资源调度方法的流程图;

图4a-图4b是本发明实施例提供的一种dc获取数据的位置信息的方法流程图;

图5是本发明实施例提供的另一种dc获取数据的位置信息的方法流程图;

图6是本发明实施例提供的另一种dc获取数据的位置信息的方法流程图;

图7是本发明实施例提供的一种资源调度装置的结构示意图;

图8是本发明实施例提供的另一种资源调度装置的结构示意图;

图9是本发明实施例提供的一种信息管理装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

图1是本发明实施例提供的一种dc集群的结构示意图,参见图1,dc集群包括至少两个dc,图1所示的dc集群以3个dc为例进行说明,在其他实施例中还可以包括两个dc或者四个以上dc。

如图1所示,每个dc均包括资源资源管理器(resourcemanager,rm)节点40和计算节点20。

计算节点20也称为数据节点(datanode)或存储节点,计算节点20用于存储数据(文件),一个文件可以包括多个块,多个块可以存储在相同或者不同的计算节点20上。同时计算节点20还用于运行应用程序以执行任务,并提供执行任务所需的资源,资源包括但不限于cpu、存储、网络接口、gpu等资源。

计算节点20内的每个应用程序均包括一个am,am为一软件模块,am用于为应用程序获取资源并将资源分配给应用程序所执行的任务,应用程序执行的工作(job)可以拆分为多个任务,多个任务可以采用不同计算节点提供的资源执行,为多个任务提供资源的计算节点可以属于不同的dc也可以属于相同的dc。

每个计算节点20内均设置有一个资源代理器(resourceagent,ra)(图中未示出),ra是计算节点内的资源和任务管理器。一方面,ra定时向本dc内的rm节点40汇报资源使用情况和各个容器(container)的运行状态(例如容器中各个维度资源的使用量),容器是资源抽象,容器封装了某个计算节点上的多维度资源(cpu、存储、网络接口、gpu等),当然资源也可以由其他封装形式,如虚拟机等;另一方面,ra接收来自计算节点20内的应用程序master(applicationmaster,am)的请求,以控制容器启动或停止运行。

rm节点40包括应用程序管理器(applicationsmanager,asm)(图中未示出)、dc调度器(datacenterscheduler)41和本地调度器(localscheduler)42,主要负责整个dc的资源调度和管理。asm负责管理整个dc中的应用程序,包括应用程序提交、与dc调度器协商资源以启动am、监控am运行状态并在运行失败时重新启动am等。dc调度器41和本地调度器42均采用软件模块,由rm节点40创建。dc调度器42包括跨dc通讯器(crossdccommunicator)411和跨dc调度器(crossdcscheduler)412。其中,跨dc调度器412用于接收并处理来自dc中计算节点20内的am的任务部署请求(用于为任务(task)获取资源),并判断将该任务部署请求调度到本地处理还是分发到其他的dc处理;跨dc通讯器411用于与其他dc的dc通讯器411传输心跳消息,心跳消息是dc之间周期性传输的信息,心跳信息除了可以确认与本dc连接的dc是否存活外,通过心跳消息还可以进行dc的资源使用消息和资源分配消息的同步。资源使用消息用于指示dc中资源的使用情况,例如,资源使用消息可以包括已使用的资源、已分配的资源和可使用的资源。资源分配消息用于指示分配给一项任务的资源。实现时,每个dc中可以设置两个rm节点40,两个rm节点40互为主备关系。

每个dc还包括名字节点(namenode)10,名字节点也称为主节点,主节点10用于存储并管理所在dc的各个计算节点20中存储的文件的元数据信息。实现时,每个dc中可以设置两个主节点10,主节点10互为主备关系。rm节点40和主节点10既可以采用相同的硬件实现,也可以采用相互独立的两套硬件实现。

在本发明实施例中,计算节点20具有提供执行任务所需的资源,同时通过部署ra对计算节点内的资源和任务管理器的功能,此时,每个dc的计算节点20和rm节点40组成分布式调度系统,分布式调度系统可以采用hadoop另一种资源协调者(yetanotherresourcenegotiator,yarn)架构实现。计算节点20具有存储数据的功能,此时,每个dc的计算节点20和主节点10组成分布式文件系统(distributedfilesystem,dfs),分布式文件系统可以采用hadoop分布式文件系统(hadoopdistributedfilesystem,hdfs)架构实现。

进一步地,dc集群还包括元数据(metadataservice)服务器30,元数据服务器30同时与dc集群中各个dc的主节点10连接,既能够从各个dc的主节点10获取各个dc中的文件的元数据信息,还可以将获取到的各个dc中的文件的元数据信息存储起来,文件的元数据信息包括文件的名称和位置信息等。主节点10能够获取所在dc中的文件的元数据信息,当主节点10要获取其他dc的元数据信息时,则可以通过元数据服务器30来实现。元数据服务器30可以为独立的服务器,也可以集成在dc集群里的一个dc的节点上。另外,由于dc集群中的各个dc可以分布在全球的不同位置,因此该元数据服务器30也可以为全球(global)dc元数据服务器。实现时,每个dc集群中可以设置两个元数据服务器30,两个元数据服务器30互为主备关系。

在本发明实施例中,元数据服务器30、主节点10和rm节点40均可以采用法定日志管理器(quorumjournalmanager,qjm)机制实现主备同步。另外,元数据服务器30还可以采用故障转移控制器(zookeeperfailovercontroller,zkfc)机制保证高可用性。

值得说明的是,本发明中计算节点同时作为分布式文件系统中的数据节点和分布式调度系统中的计算节点,在其他实现方式中分布式文件系统中的数据节点和分布式调度系统中的计算节点也可以独立分开设置为两个节点。

现有技术中,由于dc集群中各个dc的分布式文件系统是独立部署的,所以每个dc在执行任务时,只能判断本地是否存储有执行该任务所需的数据,而并不知道该数据在其他dc上的具体位置,所以当本地未存储有执行任务所需的数据时,只能依靠定期的跨dc数据同步来获得执行任务所需的数据,造成任务处理延时较大。

本申请通过资源管理器节点、计算节点、元数据服务器和主节点共同构成的任务部署系统来实现任务的跨dc部署,从而解决现有技术中的问题,任务部署系统中各个节点以及元数据服务器的详细功能参见后文描述。

下面先结合具体的硬件结构对实现本发明实施例提供的装置进行说明。

图2示出了本发明实施例提供的一个装置140的结构方框图,该装置可以为资源调度装置或者信息管理装置,该资源调度装置可以为前述资源管理器节点或计算节点,该信息管理装置可以为前述元数据服务器。参见图2,装置140可以包括一个或者一个以上核心的处理器31、包括一个或一个以上计算机可读存储介质的存储器32、以及通信接口33等部件,处理器31可以用总线与存储器32和通信接口33相连。本领域技术人员可以理解,图2中示出的结构并不构成对装置140的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器31是装置140的控制中心,利用各种接口和线路连接整个装置140的各个部分,通过运行或执行存储在存储器32内的软件程序,以及调用存储在存储器32内的数据,执行装置140的各种功能和处理数据,从而对装置140进行整体监控。可选地,处理器31可以包括一个或者一个以上处理单元,该处理单元可以是中央处理单元(英文:centralprocessingunit,简称:cpu)或者网络处理器(英文:networkprocessor,简称:np)等。

存储器32可用于存储各种数据,例如各种配置参数以及计算机指令,该计算机指令可以由处理器31执行。存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘、闪存,也可以是其他易失性固态存储器件。相应地,存储器32还可以包括存储器控制器,以提供处理器31对存储器32的访问。

通信接口33采用有线或无线的方式与dc集群中的其他设备连接,以与其他设备进行通信,从而进行数据传输。

当资源调度装置为资源管理器节点时,处理器31用于通过通信接口33接收所述第一计算节点发送的第一任务部署请求,所述第一任务部署请求包括一任务的标识、一数据中心的标识和所述数据中心中一计算节点的标识,所述数据中心的标识用于指示将部署所述任务的数据中心;在所述数据中心的标识指示除所述第一数据中心之外的数据中心的情况下,通过通信接口33向所述数据中心的标识对应的数据中心中的资源管理器节点发送第二任务部署请求,所述第二任务部署请求用于向所述数据中心部署所述任务,所述第二任务部署请求包括所述数据中心的标识、所述任务的标识和所述数据中心中一计算节点的标识。

资源管理器节点接收同数据中心的计算节点发送的任务部署请求,该资源管理请求中携带要执行的任务的标识,以及任务所要处理的数据所在的数据中心和计算节点的标识,在任务部署请求包括其他数据中心的标识时,则将任务部署请求发送到其他数据中心,由其他具有待执行的任务所需处理的数据所在的数据中心来部署该任务,这样在本地没有任务所需的数据时,可以实现任务的异地处理,实现了异地数据的实时共享,无需依靠数据同步将其他数据中心的数据同步到本地,任务处理延时较小,减少了资源浪费。

当资源调度装置为资源管理器节点时,处理器31还用于执行后文的资源调度方法中资源管理器节点所执行的步骤。

当资源调度装置为计算节点时,处理器31用于通过通信接口33向元数据服务器发送位置信息请求,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的数据中心和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据;通过通信接口33接收所述元数据服务器发送的位置信息应答,所述位置信息应答包括第二数据中心的标识和第二计算节点的标识,所述第二计算节点属于所述第二数据中心;通过通信接口33向所述第一资源管理器节点发送第一任务部署请求,所述第一任务部署请求包括一任务的标识、一数据中心的标识和所述数据中心中一计算节点的标识,所述数据中心的标识用于指示将部署所述任务的数据中心;通过通信接口33接收所述第一资源管理器节点发送的第一资源分配消息,所述第一资源分配消息用于指示所述任务可以向所述第二计算节点部署。

计算节点向同数据中心的资源管理器节点发送任务部署请求,该资源管理请求中携带要执行的任务的标识,以及任务所要处理的数据所在的数据中心和计算节点的标识,在任务部署请求包括其他数据中心的标识时,则将任务部署请求发送到其他数据中心,由其他具有待执行的任务所需处理的数据所在的数据中心来部署该任务,这样在本地没有任务所需的数据时,可以实现任务的异地处理,实现了异地数据的实时共享,无需依靠数据同步将其他数据中心的数据同步到本地,任务处理延时较小,减少了资源浪费。

当资源调度装置为计算节点时,处理器31还用于执行后文的资源调度方法中计算节点所执行的步骤。

当信息管理装置为元数据服务器时,处理器31用于通过通信接口33接收第一计算节点发送的位置信息请求,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的数据中心和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据,所述第一计算节点属于第一数据中心;根据所述位置信息请求,通过通信接口33向所述第一计算节点发送位置信息应答,所述位置信息应答包括所述数据标识对应的数据所在的数据中心的标识和计算节点的标识。

在该实现方式中,任务部署系统通过布置元数据服务器来提供位置信息查询服务,各个数据中心的计算节点均可以通过请元数据服务器发送请求,来获取任务所需数据的位置信息,从而为跨数据中心的任务部署提供基础。

当资源调度装置为元数据服务器时,处理器31还用于执行后文的资源调度方法中元数据服务器所执行的步骤。

其中,处理器31通过通信接口33收发消息或请求是指,处理器31向通信接口33发送控制指令,使得通信接口33收发消息或请求。

图3a-图3c是本发明实施例提供的一种资源调度方法的流程图,该方法基于图1所示的dc集群实现,其中图3b和图3c仅示出了dc集群中各个节点(设备)之间的交互过程,参见图3a-图3c,方法流程包括:

200:第一dc的rm节点接收客户端提交的应用程序,并在第一dc的计算节点中为该应用程序分配资源以运行该应用程序。

步骤200由rm节点中的asm执行,asm在接收应用客户端(applicationclient)(简称客户端)提交的应用程序后,与rm节点中的dc调度器协商以分配资源运行该应用程序,并为该应用程序创建am。

201:第一dc的计算节点确定该应用程序待执行的任务。

每个应用程序均包括一个am,应用程序中的am将应用程序执行的工作拆分为多个任务,多个任务既可以并行也可以串行,am是应用程序当前需要执行的任务的调度管理者。am在拆分出多个任务后,需要为每个任务获取资源,以执行每一个任务,具体过程参见后文描述。

其中,步骤201的计算节点为运行该应用程序的计算节点。

202:第一dc的计算节点向元数据服务器发送位置信息请求。

其中,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的dc和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据。

相应地,元数据服务器接收第一dc的计算节点发送的位置信息请求。如图3b、3c所示,dc1即为前述第一dc。

在本发明实施例中,第一dc的计算节点待执行的任务可以为一个或多个,每个任务所需处理的数据可以包括一个或多个文件,这一个或多个文件可以保存在同一dc中,也可以保存在不同的dc中。该位置信息请求中的数据标识可以为文件名称,例如文件x,文件名称可以在步骤200提交应用程序时由用户通过接口参数指定。

在本发明实施例中,元数据服务器提供了供dc查询数据的位置信息的接口。例如,元数据服务器提供两个api接口来供dc获取数据的位置信息。

一个接口为map<string,filestatus>getcrossdcfilestatus(pathpath)–,该接口用于获取数据所在的dc的信息,返回值类型为map<string,filestatus>。该接口中,string表示文件名,filestatus为对象,包括文件属性,例如副本数、所处的dc、文件创建时间、文件状态等,map表示集合,一个map中可以有多个文件及文件对应的文件属性,(pathpath)用于表示是否指定dc,或者用于指示所指定的dc。

另一个接口为map<string,locatedfilestatus>getcrossdclocatedfilestatus(pathpath)–,该接口用于获取数据所在的dc的信息和计算节点的信息,返回值类型为map<string,locatedfilestatus>。该接口中,locatedfilestatus与filestatus的区别在于还可以包括文件所在的计算节点的信息。

在实际应用中,计算节点也可以直接采用第二个接口查询所在的dc和计算节点;计算节点也可以先采用第一个接口先查询所在的dc,然后采用第二个接口查询文件所在的计算节点。采用第二种种方式可以避免大量位置信息请求同时查询数据的计算节点的信息,导致数据流过大致使系统崩溃的问题。

203:元数据服务器根据位置信息请求确定第一dc的计算节点待执行的任务所需处理的数据的位置信息。

其中,数据的位置信息包括数据所在的dc的信息和计算节点的信息,其中数据所在的dc的信息和计算节点的信息可以为数据所在的dc的标识和计算节点的标识。例如,数据所在的dc的信息为dc1,计算节点的信息为n3,则表示该数据位于dc1中的n3计算节点中。

元数据服务器在确定数据的位置信息时,存在如下两种情况:

第一种情况,元数据服务器中存储有该数据的完整位置信息,包括数据所在的dc的信息和计算节点的信息。第二种情况,元数据服务器中未存储该数据的位置信息,或者未存储该数据的完整位置信息,例如只存储有数据所在的dc的信息,未存储数据的计算节点的信息。当元数据服务器中存储的信息不足以对位置信息请求进行应答时,则需要向各个dc进一步请求该数据的位置信息。

在上述两种情况中,元数据服务器中已经存储的数据的位置信息可以通过两种方式获得,第一种方式是各个dc主动上报(即向元数据服务器上传),第二种方式是元数据服务器向各个dc请求数据的位置信息,并将请求到的数据的位置信息存储到元数据服务器中。

下面通过图4a和图4b提供的流程图对第一种方式的详细过程进行说明,其中图4b仅示出了各个设备之间的交互过程,参见图4a和图4b,该流程包括:

2031:分布式文件系统客户端连接到dc的分布式文件系统的主节点,创建数据的元数据。

其中,分布式文件系统客户端是访问dc中分布式文件系统的客户端,分布式文件系统客户端通常为一台linux机器,分布式文件系统客户端上安装有分布式文件系统客户端软件,通过该软件能够登陆分布式文件系统管理角色,从而实现步骤2031和2032。

在本申请中,分布式文件系统客户端和前述应用客户端可以是两台独立机器,也可以采用一台机器通过安装不同的客户端程序实现。

步骤2031中数据的元数据包括数据的位置信息,例如,图4b中分布式文件系统客户端向写入的元数据包括数据的位置信息:/opt/data/x。

2032:分布式文件系统客户端向dc的计算节点写入数据,也即文件。

2033:dc的计算节点通过数据迁移工具(replicationtool)将该数据写入其他dc,例如第一dc将数据写入与第一dc连接的第二dc。

该数据迁移工具可以由人工通过分布式文件系统客户端来启动,也可以通过设计调用接口来调用并启动。

需要说明的时,上述数据迁移的过程为可选步骤,可以事先配置是否进行数据迁移。

在本实施例中,创建数据后即向其他dc同步该数据,保证各个dc数据共享的实时性。

例如,图4b中数据迁移工具从dc1向dc2迁移数据,数据在dc1中的位置为:/opt/data/x,迁移到dc2中的位置为/opt/dc2data/x。

2034:dc的主节点将该数据的数据同步消息上报给元数据服务器,数据同步消息包括该数据同步前的路径以及该数据同步后的路径。通过获取到的数据同步消息,元数据服务器获得该数据的位置信息中的所在的dc的信息。

例如,数据从dc1迁移(即复制)到dc2,数据在dc1中的路径为/opt/data/x,在dc2中的路径为/opt/dc2data/x。通过该同步信息中数据同步前的路径以及该数据同步后的路径,元数据服务器中即可存储该文件x所在的dc的信息包括dc1和dc2。

其中,dc的主节点设置有putrestapi接口,该接口用于将每一次的元数据操作的数据同步消息发送到元数据服务器,这里的数据同步消息用于指示所述第三dc中通过数据操作而变动的数据,数据同步消息除了可以指示向其他dc同步数据的操作外,还可以指示创建数据、删除数据等操作。

另外,对于同步数据产生的数据同步消息,也可以直接通过数据迁移工具上传到元数据服务器。

下面通过图4b、图5和图6提供的流程图对第二种方式的详细过程进行说明,参见图4b、图5和图6,第二种方式包括两种情形:第一种情形,元数据服务器已知数据所在的dc,此时流程如图4b、图5所示:

2035:元数据服务器根据位置信息请求确定第一dc的计算节点要处理的数据所在的dc的信息。

2036:元数据服务器向确定出的dc的信息对应的dc的主节点发送位置信息查询请求。

在本发明实施例中,第一dc的计算节点待执行的任务所需处理的数据可以为一个或多个文件,该位置信息查询请求包括数据标识,该数据标识可以为文件的名称。

2037:确定出的dc的信息对应的dc的主节点向元数据服务器返回位置信息查询应答,位置信息查询应答包括计算节点的信息,如计算节点的标识。

第二种情形,元数据服务器不知道数据所在的dc,此时流程如图6所示:

2038:元数据服务器向各个dc的主节点发送位置信息查询请求。

在本发明实施例中,第一dc的计算节点待执行的任务所需处理的数据可以包括一个或多个文件,该位置信息查询请求包括数据标识。

2039:各个dc的主节点向元数据服务器返回位置信息查询应答,该应答包括数据标识对应的数据所在dc的信息,如dc的标识;或者该应答包括数据标识对应的数据所在dc的信息和计算节点的信息,如dc的标识和计算节点的标识;或者该应答用于指示该dc中不存在数据标识对应的数据。

在上述两种情形中,元数据服务器可以通过restapi接口来向dc的主节点发送请求。

通过上述过程,元数据服务器中获得了数据的位置信息。

在本发明实施例中,元数据服务器会采用qjm机制实现主元数据服务器、备元数据服务器之间的信息同步。例如,主元数据服务器将每个元数据操作记录到主元数据服务器中的日志节点(journalnode)的编辑(edit)文件,同时备元数据服务器可以随时读取该信息。主备元数据服务器都会实现定期的检查点(checkpoint)机制,即主备元数据服务器将内存中记录刷新到文件系统中的镜像文件后,都会进行checkpoint操作。备元数据服务器会定期的加载edit文件到内存,保证主备切换时能够快速启动。

204:元数据服务器向第一dc的计算节点发送位置信息应答,该位置信息应答包括第一dc的计算节点待执行的任务所需处理的数据所在的dc的信息和计算节点的信息。

相应地,第一dc的计算节点接收元数据服务器发送的位置信息应答。

在本发明实施例中,元数据服务器根据第一dc所调用的接口类型,返回对应的返回值,该返回值可以采用java脚本(javascript,js)对象标记(javascriptobjectnotation,json)格式。

例如,在图3b的步骤204中,位置信息应答可以携带文件x的位置信息:dc1={b1@n1,n4,b2@..},dc2={b1@n3,n5,b2@..},该位置信息表示文件x的b1块在dc1的n1节点、n4节点等位置,在dc2的n3节点、n5节点等位置。

205:第一dc的计算节点向第一dc的rm节点发送第一任务部署请求,该第一任务部署请求包括第一dc的计算节点待执行的任务的标识、dc的标识和计算节点的标识。

相应地,第一dc的rm节点接收第一dc的计算节点发送的第一任务部署请求。

其中,第一任务部署请求中可以携带至少一个任务的标识,每个任务的标识对应若干dc的标识和计算节点的标识。当一个任务的标识对应多个dc的标识时,需要根据资源分配策略从多个dc的标识对应的dc中选择出一个dc来部署该任务。

可选地,该第一任务部署请求中还可以包括资源分配策略,资源分配策略可以在提交该工作时由用户通过接口参数指定。所述资源分配策略用于指示从所述待执行的任务的标识对应的dc中,确定出部署所述任务的dc,也即第一dc的计算节点待执行的任务所需处理的数据可能同时存储在多个dc中,采用资源分配策略从多个dc中选择一个用来部署该任务。该资源分配策略可以包括调度策略,调度策略可以为以下任一种:

1)、空闲dc(relax_dc)策略:在所述任务无法部署在所述第一dc的计算节点的情况下,允许所述任务被部署在任一拥有空闲资源的dc的计算节点上。其中,第一dc的计算节点是发送该任务对应的任务部署请求的计算节点,上述策略也即如果任务部署请求的资源本地化无法满足,则允许所述任务部署请求被调度到任一拥有空闲资源的dc。

在本实施例中,所述资源本地化是指在发送所述任务部署请求的计算节点上为所述待执行的任务分配资源。当资源本地化无法满足,则可以允许该任务被调度到任意有空闲资源的dc,而不限定是需要获取资源的计算节点所在dc。

可选地,该策略中还可以设定一超时时间,当超过一超时时间后,如果该任务部署请求的资源本地化仍无法满足时,允许所述任务部署请求被调度到任一拥有空闲资源的dc。

2)、本地机架优先(local_rack_first)策略:在所述任务无法部署在所述第一dc的计算节点的情况下,允许所述任务优先被部署在所述第一dc的与所述第一计算节点位于同个机架上的其他计算节点上。上述策略也即如果任务部署请求的资源本地化无法满足,则允许所述任务优先被调度到同个dc的同个机架上的其他计算节点上。

本发明实施例中,每个dc包括多个机架,每个机架上布置有多个计算节点,每个计算节点可以有多个硬盘。

该策略中,当资源本地化无法满足,则可以允许所述任务优先被调度到同个dc的同个机架上的其他计算节点上,但当同个dc的同个机架上的其他计算节点无法满足任务部署时,允许任务被调度到同个dc的其他机架的计算节点或者其他dc上。

3)、本地dc(dc_locality)优先策略:在所述任务无法部署在所述第一dc的计算节点的情况下,允许所述任务优先被部署在所述第一dc的其他计算节点上。上述策略也即如果任务部署请求的资源本地化无法满足,则允许所述任务优先被调度到同个dc的其他计算节点上。

该策略中,当资源本地化无法满足,则可以允许所述任务优先被调度到同个dc的其他计算节点上,但当同个dc的其他计算节点无法满足任务部署时,允许任务被调度到其他dc上。

在其他实施例中,资源本地化还可以是指在需要获取资源的计算节点所在的机架的计算节点为任务分配资源,或者在需要获取资源的计算节点所在的dc的计算节点为任务分配资源。

进一步地,为了便于实现跨dc间的资源本地化,可以通过扩展hadoop的am协议,在第一任务部署请求中指定本地化信息,例如在am协议中新增字段指示本地化信息,如,node表示只有本地计算节点可以选择,rack表示本机架的所有计算节点可以选择,any表示dc中的任一计算节点可以作为选择对象。

其次,可以通过扩展am协议,允许在第一任务部署请求中通过字符串表达式来指定调度策略,例如dc_locality。

除此之外,资源分配策略还可以限定资源的选择范围或选择条件,在确定dc时按照该选择范围或选择条件选取。例如,资源的选择范围为dc1的1-10节点。资源的选择条件为具有gpu、大存储或大内存的dc的计算节点等。

资源分配策略还可以包括其他规则,例如所述资源分配策略还可以包括在采用所述调度策略确定出两个或两个以上dc的情况下,根据以下至少一种dc的属性信息选择dc:两个或两个以上dc的优先级、两个或两个以上dc中每个dc的空闲资源的容量或比例、两个或两个以上dc中的每个dc的rm节点与所述第一rm节点之间的网络带宽的大小。上述其他规则可以作为资源分配策略的部分携带在第一任务部署请求中,也可以采用事先约定的方式定义。

当第一任务部署请求中不包括资源分配策略时,rm节点可以采用默认资源分配策略进行处理。

例如,在图3b的步骤205中,第一资源请求可以携带如下信息:task1:n3@dc1–p:0,n8@dc2–p:0;task2:n1@dc3–p:0,policy=relax_dc,上述信息表示该第一资源请求用于为task1和task2两个任务请求资源,task1所要处理的数据的位置信息为dc1的n3节点和dc2的n8节点,task2所要处理的数据的位置信息为dc3的n1节点,同时指定了task2的资源分配策略为空闲dc策略,dc1、dc2、dc3的优先级均为p:0。

206:第一dc的rm节点根据第一任务部署请求,确定出部署该第一任务部署请求中的任务的dc,也即确定第一任务部署请求中待执行的任务对应的dc,以通过待执行的任务对应的dc为待执行的任务分配资源。当确定出通过本地dc为第一任务部署请求中待执行的任务分配资源时,本地dc为第一任务部署请求中待执行的任务分配资源的流程参见步骤207;当确定出通过其他dc为第一任务部署请求中待执行的任务分配资源时,在所述dc的标识指示除所述第一dc之外的dc的情况下,其他dc为第一任务部署请求中待执行的任务分配资源的流程参见步骤208及后续步骤。

由于第一任务部署请求可以同时请求为两个或多个任务分配资源,因此步骤207和步骤208可以同时执行。

其中,所述第一任务部署请求中包括多个dc的标识,所述多个dc的标识用于指示能够部署所述任务的多个dc,所述方法还包括:

根据资源分配策略从所述多个dc中确定将部署所述任务的dc。

在本发明实施例中,第一dc的rm节点采用如下方式确定该第一任务部署请求的处理方式:

第一dc的rm节点根据前述资源分配策略中调度策略筛选出符合要求的dc。

当筛选出两个及以上符合要求的dc时,第一dc的rm节点按照dc的优先级、dc空闲资源的容量或者比例、筛选出的dc与第一dc间的网络带宽等对筛选出的dc进行排序,并选择排序在最前的dc作为处理该第一任务部署请求的dc。

当按照上述方式排序,位于最前的两个或者多个dc的优先级、空闲资源的容量或者比例或者网络带宽相同时,从所述两个或者多个dc中随机选择一个作为处理该第一任务部署请求的dc,或者选择所述两个或者多个dc中第一个响应的dc作为处理该第一任务部署请求的dc。其中,第一个响应是指在分配过程中获取到的第一个心跳消息对应的dc。

当然,在其他实现方式中,当筛选出两个及以上符合要求的dc时,也可以直接从所述两个及以上符合要求的dc中随机选择一个dc作为处理该第一任务部署请求的dc,或者直接选择所述两个及以上符合要求的dc中第一个响应的dc作为处理该第一任务部署请求的dc。

按照上述方式最终确定出一个dc,当该dc为第一dc时,则执行步骤207;当该dc为第一dc以外的其他dc时,则执行步骤208。

在上述过程中,如果要按照可用资源的大小来进行dc排序时,则第一dc的rm节点需要先获取各个dc的资源使用消息,资源使用消息用于表示各个dc中资源的使用情况,该资源使用消息通过dc之间的心跳消息来传输。

207:第一dc的rm节点根据所述第一任务部署请求为所述待执行的任务分配资源。

在本发明实施例中,当第一任务部署请求由本地计算节点进行处理时,直接将该第一任务部署请求发送给本地调度器进行处理即可。本地调度器为该第一任务部署请求对应的任务分配资源,该资源可以为一个容器,此时该任务只能使用该容器中描述的资源。

208:第一dc的rm节点将第二任务部署请求发送到第二dc的rm节点,所述第二任务部署请求用于向所述第二dc部署所述任务,所述第二任务部署请求包括所述第二dc的标识、所述任务的标识和所述第二dc中计算节点的标识。

相应地,第二dc的rm节点接收第一dc的rm节点发送的第二任务部署请求。第二任务部署请求与第一任务部署请求可以相同,也可以不同。例如,第一任务部署请求对应两个任务,而第二任务部署请求只对应一个任务,或者第一任务部署请求携带有资源分配策略,而第二任务部署请求未携带资源分配策略。

其中,第二dc为步骤206确定出的dc,第二dc可以为一个、两个、也可以为多个,当第二dc包括多个时,每个第二dc均执行步骤208-210的方法流程。如图3b、3c所示,dc2和dc3均为第二dc。

在本发明实施例中,所述第二任务部署请求为所述第一rm节点和所述第二rm节点之间的心跳消息,所述心跳消息包括所述dc的标识、所述任务的标识和所述dc中一计算节点的标识。第一dc的rm节点可以通过心跳消息将该第二任务部署请求发送到第二dc的rm节点。

209:第二dc的rm节点对第二任务部署请求所请求的资源进行调度。

第二dc的rm节点中的跨dc调度器在接收到心跳消息时,会检查该心跳消息中是否携带有任务部署请求;如果携带有任务部署请求(即第二任务部署请求),则将该任务部署请求分配给本地调度器进行处理。本地调度器根据所述任务部署请求为所述待执行的任务分配资源;根据分配的资源生成资源分配消息,资源分配消息用于指示所述任务可以向所述第二计算节点部署。其中,所述资源分配消息可以携带分配给所述任务的资源,例如容器标识。

210:第二dc的rm节点向第一dc的rm节点发送资源分配消息。

相应地,第一dc的rm节点接收第二dc的rm节点发送的资源分配消息。

在本发明实施例中,该资源分配消息通过心跳消息进行传输。

例如,图3c中dc2的rm节点向dc1的rm节点发送资源分配消息,该资源分配消息包括n8@dc2,n8@dc2表示分配给dc1的计算节点的资源所在的位置。

211:第一dc的rm节点向第一dc的计算节点发送资源分配消息。

相应地,第一dc的计算节点接收第一dc的rm节点发送的资源分配消息。

212:第一dc的计算节点向第二dc的计算节点发送任务执行请求,所述任务执行请求包括所述任务的标识和数据标识,所述数据标识用于指示所述第二计算节点中执行所述任务所需的数据。

相应地,第二dc的计算节点接收所述第一dc的计算节点发送的任务执行请求。

可选地,所述任务执行请求还可以包括容器标识。

在本发明实施例中,第一dc的计算节点根据所述资源分配消息请求资源所在的计算节点执行所述待执行的任务,所述资源所在的计算节点为所述分配给所述待执行的任务的资源所在的计算节点,也即第一dc的计算节点请求第二dc的计算节点启动分配的容器执行任务。

213:第二dc的计算节点采用分配给所述任务执行请求对应的任务的资源,执行所述任务执行请求对应的任务,并生成任务执行结果。

其中,任务执行结果为计算节点执行任务得到的结果。

在执行任务的过程中,第二dc的rm节点向第一dc的rm节点发送运行状态信息,该运行状态信息为执行任务的容器的运行状态信息;第一dc的rm节点接收第二dc的rm节点发送的运行状态信息。

214:第二dc的计算节点将任务执行结果返回给第一dc的计算节点。

相应地,第一dc的计算节点接收第二dc的计算节点发送的任务执行结果。

本发明实施例提供了一种资源调度装置,应用于第一数据中心的第一资源管理器节点,所述第一数据中心中还包括第一计算节点,参见图7,资源调度装置包括:

该资源调度装置可以通过专用硬件电路,或者,软硬件的结合实现成为资源管理器节点的全部或一部分。该资源调度装置包括:接收单元301和发送单元302。其中,接收单元301,用于接收所述第一计算节点发送的第一任务部署请求,所述第一任务部署请求包括一任务的标识、一数据中心的标识和所述数据中心中一计算节点的标识,所述数据中心的标识用于指示将部署所述任务的数据中心;发送单元302,用于在所述数据中心的标识指示除所述第一数据中心之外的数据中心的情况下,向所述数据中心的标识对应的数据中心中的资源管理器节点发送第二任务部署请求,所述第二任务部署请求用于向所述数据中心部署所述任务,所述第二任务部署请求包括所述数据中心的标识、所述任务的标识和所述数据中心中一计算节点的标识。

可选地,所述第一任务部署请求中包括多个数据中心的标识,所述多个数据中心的标识用于指示能够部署所述任务的多个数据中心,所述装置还包括确定单元303,用于根据资源分配策略从所述多个数据中心中确定将部署所述任务的数据中心。

可选地,所述资源分配策略包括调度策略,所述调度策略为下述任一种:

在所述任务无法部署在所述第一计算节点的情况下,允许所述任务被部署在任一拥有空闲资源的数据中心的计算节点上;

在所述任务无法部署在所述第一计算节点的情况下,允许所述任务优先被部署在所述第一数据中心的与所述第一计算节点位于同个机架上的其他计算节点上;

在所述任务无法部署在所述第一计算节点的情况下,允许所述任务优先被部署在所述第一数据中心的其他计算节点上。

可选地,所述资源分配策略还包括在采用所述调度策略确定出两个或两个以上数据中心的情况下,根据以下至少一种数据中心的属性信息选择数据中心:两个或两个以上数据中心的优先级、两个或两个以上数据中心中每个数据中心的空闲资源的容量或比例、两个或两个以上数据中心中的每个数据中心的资源管理器节点与所述第一资源管理器节点之间的网络带宽的大小。

可选地,所述第二任务部署请求为所述第一资源管理器节点和所述第二资源管理器节点之间的心跳消息,所述心跳消息包括所述数据中心的标识、所述任务的标识和所述数据中心中一计算节点的标识。

可选地,所述数据中心的标识为第二数据中心的标识,所述数据中心中一计算节点的标识为第二计算节点的标识,

所述接收单元301,还用于接收来自所述第二数据中心中第二资源管理器节点的第一资源分配消息,所述第一资源分配消息用于指示所述任务可以向所述第二计算节点部署;

所述发送单元302,还用于向所述第二计算节点发送任务执行请求,所述任务执行请求包括所述任务的标识和数据标识,所述数据标识用于指示所述第二计算节点中执行所述任务所需的数据。

可选地,所述接收单元301,还用于接收第三资源管理器节点发送的第三任务部署请求,所述第三任务部署请求包括所述第一数据中心的标识、第一任务的标识和所述第一数据中心中的第三计算节点的标识,所述第三资源管理器节点属于第三数据中心;

所述发送单元302,还用于向所述第三资源管理器节点发送第二资源分配消息,所述第一资源分配消息用于指示所述第一任务可以向所述第三计算节点部署。

相关细节可结合参考图3a-图6的方法实施例。

需要说明的是,上述确定单元303可以由处理器实现或者,处理器执行存储器中的程序指令来实现。接收单元301、发送单元302可以由通信接口实现或者,通信接口结合处理器来实现。

本发明实施例提供了一种资源调度装置,应用于第一数据中心的第一计算节点,所述第一数据中心中还包括第一资源管理器节点,参见图8,资源调度装置包括:

该资源调度装置可以通过专用硬件电路,或者,软硬件的结合实现成为计算节点的全部或一部分。该资源调度装置包括:发送单元401和接收单元402。其中,发送单元401,用于向元数据服务器发送位置信息请求,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的数据中心和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据;接收单元402,用于接收所述元数据服务器发送的位置信息应答,所述位置信息应答包括第二数据中心的标识和第二计算节点的标识,所述第二计算节点属于所述第二数据中心;所述发送单元401,还用于向所述第一资源管理器节点发送第一任务部署请求,所述第一任务部署请求包括一任务的标识、一数据中心的标识和所述数据中心中一计算节点的标识,所述数据中心的标识用于指示将部署所述任务的数据中心;所述接收单元402,还用于接收所述第一资源管理器节点发送的第一资源分配消息,所述第一资源分配消息用于指示所述任务可以向所述第二计算节点部署。

可选地,所述发送单元401,还用于向所述第二计算节点发送任务执行请求,所述任务执行请求包括所述任务的标识和数据标识,所述数据标识用于指示所述第二计算节点中执行所述任务所需的数据。

相关细节可结合参考图3a-图6的方法实施例。

需要说明的是,接收单元402和发送单元401可以由通信接口实现或者,通信接口结合处理器来实现。

本发明实施例提供了一种资源调度装置,该资源调度装置可以为前述元数据服务器,参见图9,资源调度装置包括:

该资源调度装置可以通过专用硬件电路,或者,软硬件的结合实现成为元数据服务器的全部或一部分。该资源调度装置包括:接收单元501和发送单元502。其中,接收单元501,用于接收第一计算节点发送的位置信息请求,所述位置信息请求包括数据标识,所述位置信息请求用于向所述元数据服务器请求所述数据标识对应的数据所在的数据中心和计算节点的信息,所述数据标识对应的数据为执行所述任务所需的数据,所述第一计算节点属于第一数据中心;发送单元502,用于根据所述位置信息请求,向所述第一计算节点发送位置信息应答,所述位置信息应答包括所述数据标识对应的数据所在的数据中心的标识和计算节点的标识。

可选地,所述装置还包括:所述确定单元503,用于根据所述数据标识确定第二数据中心,所述第二数据中心为所述数据标识对应的数据所在的数据中心;所述发送单元502,还用于向所述第二数据中心的主节点发送位置信息查询请求,所述位置信息查询请求包括数据标识,所述第二数据中心的主节点为所述第二数据中心的分布式文件系统的主节点;所述接收单元501,还用于接收所述第二数据中心的主节点返回的位置信息查询应答,所述位置信息查询应答包括所述数据标识对应的数据所在的计算节点的标识;或者,所述发送单元502,还用于向多个数据中心的主节点发送位置信息查询请求,所述位置信息查询请求包括数据标识,所述多个数据中心中的每个数据中心的主节点为每个数据中心的分布式文件系统的主节点;所述接收单元501,还用于接收所述第一主节点返回的位置信息查询应答,所述位置信息查询应答包括以下信息中的至少一个:所述数据标识对应的数据所在的数据中心和计算节点的标识,或者所述位置信息查询应答用于指示所述第一主节点所在的数据中心中不存在所述数据标识对应的数据,所述第一主节点为所述多个数据中心中的任一个数据中心的分布式文件系统的主节点。

可选地,所述接收单元501,还用于接收第三数据中心的主节点发送的数据同步消息,所述数据同步消息用于指示所述第三数据中心中通过数据操作而变动的第一数据,所述数据操作包括以下至少一种:创建数据、删除数据和向其他数据中心同步数据,所述第三数据中心的主节点为所述第三数据中心的分布式文件系统的主节点;

所述装置还包括:处理单元504,用于根据所述数据同步消息,记录所述第一数据在变动后对应的数据中心。

相关细节可结合参考图3a-图6的方法实施例。

需要说明的是,上述确定单元503、处理单元504可以由处理器实现或者,处理器执行存储器中的程序指令来实现。接收单元501和发送单元502可以由通信接口实现或者,通信接口结合处理器来实现。

在上述实施例中,可以全部或部分地通过软件、硬件或者其组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以是存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、双绞线、光纤)或无线(例如红外、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质、或者半导体介质(例如固态硬盘(ssd))等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1