CN114510325A - 任务调度方法、装置及系统 - Google Patents

任务调度方法、装置及系统 Download PDF

Info

Publication number
CN114510325A
CN114510325A CN202011284637.XA CN202011284637A CN114510325A CN 114510325 A CN114510325 A CN 114510325A CN 202011284637 A CN202011284637 A CN 202011284637A CN 114510325 A CN114510325 A CN 114510325A
Authority
CN
China
Prior art keywords
task
reduction
mapping
tasks
scheduling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011284637.XA
Other languages
English (en)
Inventor
刘世兴
夏寅贲
于文静
田臣
董加卿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011284637.XA priority Critical patent/CN114510325A/zh
Publication of CN114510325A publication Critical patent/CN114510325A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种任务调度方法、装置及系统,能够减少应用程序的执行时间,从而提高数据处理效率。第一调度设备获取多个归约任务各自对应的数据量。其中,第一归约任务的数据量根据第一归约任务对应并完成的一个或多个映射任务输出的第一数据量确定,第一归约任务为多个归约任务中的任一归约任务。第一调度设备根据多个归约任务中每个归约任务对应的数据量确定多个归约任务的调度顺序。第一调度设备向第二调度设备发送多个归约任务的调度顺序。该多个归约任务的调度顺序用于指示第二调度设备根据调度顺序调度多个归约任务。

Description

任务调度方法、装置及系统
技术领域
本申请涉及通信领域,尤其涉及一种任务调度方法、装置及系统。
背景技术
映射归约(mapreduce)模型是一种并行计算模型,可以通过映射任务(map task)和归约任务(reduce task)来实现数据并行处理。其中,映射任务用于执行映射操作,以产生一种或多种输出数据。归约任务用于处理同一应用程序中的各映射任务输出的同一类型的数据。
目前,可以通过基于资源和基于数据量两种方案调度归约任务。具体地,基于资源调度的方案中,可以根据系统中的资源分布情况在对应的网络节点部署归约任务,并根据以下两种方式获取归约任务的输入数据:获取映射任务的输出数据中与归约任务对应的输出数据作为归约任务的输入数据;或者,在映射任务所在网络节点上,预先合并该网络节点上所有与同一归约任务对应的所有映射任务的输出数据,并将合并后的输出数据作为归约任务的输入数据。基于数据量调度的方案中,可以在一个归约任务所有的输入数据中,调度数据量较大者的网络节点执行归约任务。
上述两种调度方案,都是在每个归约任务满足自身的触发条件时,才会调度对应的归约任务。然而,在系统资源不足时,若资源先被对应数据量小的归约任务占用,则对应数据量大的归约任务只能在对应数据量较小的归约任务之后启动,从而导致整个应用程序的执行时间长效率低。
发明内容
本申请提供一种任务调度方法、装置及系统,能够解决应用程序执行时间长的问题,从而提高数据处理的效率。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种任务调度方法。第一调度设备获取多个归约任务各自对应的数据量。其中,第一归约任务的数据量根据第一归约任务对应并完成的一个或多个映射任务输出的第一数据量确定,第一归约任务可以为多个归约任务中的任一归约任务。第一调度设备根据多个归约任务中每个归约任务对应的数据量确定多个归约任务的调度顺序。第一调度设备向第二调度设备发送多个归约任务的调度顺序。其中,归约任务的调度顺序用于指示第二调度设备根据调度顺序调度多个归约任务。其中,第一调度设备和第二调度设备可以在同一个物理设备上,也可以在不同的物理设备上。第一调度设备和第二调度设备可以是硬件设备或软件模块。
基于第一方面提供的任务调度方法,第一调度设备根据多个归约任务中每个归约任务对应的数据量,确定多个归约任务的调度顺序,如优先启动数据量大的归约任务,以提高不同归约任务之间的并行度,提高资源的利用率,从而提高数据处理效率。
一种可能的设计方案中,多个归约任务的调度顺序指示优先调度对应的数据量大的归约任务。应理解,数据量大的归约任务的执行时间通常较长,因此优先调度数据量大的归约任务,可以确保数据量大的归约任务得到优先执行,以避免数据量大的归约任务成为执行应用程序的关键路径,从而减少应用程序的总体执行时长,以提高应用程序的执行效率。
进一步地,还可以在优先调度对应的数据量大的归约任务后,再利用空闲资源启动数据量较小的归约任务,以实现更多归约任务的并行执行,从而进一步提高资源的利用率和数据处理效率。
一种可能的设计方案中,第一调度设备从每个已完成的映射任务所在的设备,获取多个归约任务各自对应的第一数据量。第一调度设备根据多个归约任务各自对应的第一数据量,计算多个归约任务各自对应的数据量。如此,便可以根据归约任务对应并完成的映射任务,获得归约任务对应的数据量,通过每个归约任务对应并完成的映射任务的第一数据量来判断归约任务对应的数据量和调度顺序,进一步提高数据处理效率。
可选地,上述第一调度设备根据多个归约任务各自对应的第一数据量,计算多个归约任务各自对应的数据量之前,第一调度设备还确定每个归约任务所对应并完成的映射任务满足触发条件。如此,在每个归约任务对应并完成的映射任务满足触发条件后,再计算多个归约任务各自对应的数据量,能够获取足够多的已完成的映射任务输出的各归约任务对应的各类型输出数据的数据量,可以据此确定更为准确的多个归约任务的调度顺序,从而进一步提高数据处理的效率。
进一步地,触发条件可以包括如下之一:每个归约任务对应并完成的映射任务的个数大于或等于第一设定阈值。或者,每个归约任务对应并完成的映射任务达到归约任务对应的映射任务的第一完成比例。其中,第一完成比例可以为归约任务对应并完成的映射任务占归约任务对应的全部映射任务的比值。或者,所有已完成的映射任务的个数大于或等于第二设定阈值。或者,所有已完成的映射任务达到全部映射任务的第二完成比例。其中,第二完成比例可以为所有已完成的映射任务占全部映射任务的比值。如此,单独判断每个归约任务对应并完成的映射任务的个数或者第一完成比例,对于各归约任务而言,能够获得该归约任务对应的映射任务足够的输出数据,从而进一步提高数据处理的效率。
或者,根据全部的映射任务中所有已完成的映射任务的比例或者个数确定触发条件,能够获取足够多的已完成的映射任务输出的各归约任务对应的各类型输出数据的数据量,从而进一步提高数据处理的效率。
多个归约任务的调度顺序,可以结合系统中空闲资源确定,使调度的归约任务所需要的资源大小与空闲的资源大小尽可能匹配,从而进一步提高应用程序的执行效率。
一种可能的设计方案中,第一调度设备还获取每个归约任务对应的映射任务的信息。其中,映射任务的信息可以包括映射任务的个数、以及映射任务的标识和位置。如此,可以根据映射任务的信息获得每个归约任务所对应的映射任务的完成状态。
可选地,第一调度设备可以为服务器。上述第一调度设备获取每个归约任务对应的映射任务的信息可以包括:服务器接收每个归约任务对应的映射任务的信息。其中,每个归约任务对应的映射任务的信息通过服务器通信连接的交换机收集。如此,便可以通过服务器获取多个归约任务的调度顺序。
或者,可选地,第一调度设备可以为交换机,上述第一调度设备获取每个归约任务对应的映射任务的信息可以包括:交换机通过侦听获取每个归约任务对应的映射任务的信息,如映射任务的个数、映射任务的标识和位置。如此,可以由交换机来获取多个归约任务的调度顺序。本实施方式可以复用交换机,降低设备成本,及时获得映射任务的信息,进一步提高应用程序的执行效率。
进一步地,获取多个归约任务各自对应的数据量之前,第一调度设备还通过侦听确定已完成的映射任务。如此,第一调度设备能够及时确定已完成的映射任务,快速地确定多个归约任务的调度顺序,从而提高数据处理的效率。
第二方面,提供一种任务调度装置。该任务调度装置包括:处理模块和发送模块。其中,处理模块,用于获取多个归约任务各自对应的数据量。其中,第一归约任务的数据量根据第一归约任务对应并完成的一个或多个映射任务输出的第一数据量确定。第一归约任务可以为多个归约任务中的任一归约任务。根据多个归约任务中每个归约任务对应的数据量确定多个归约任务的调度顺序。发送模块,用于向第二调度设备发送多个归约任务的调度顺序。其中,归约任务的调度顺序用于指示第二调度设备根据调度顺序调度多个归约任务。
一种可能的设计方案中,多个归约任务的调度顺序指示优先调度对应的数据量大的归约任务。
一种可能的设计方案中,处理模块,还用于从每个已完成的映射任务所在的设备,获取多个归约任务各自对应的第一数据量。根据多个归约任务各自对应的第一数据量,计算多个归约任务各自对应的数据量。
可选地,处理模块,还用于在根据多个归约任务各自对应的第一数据量,计算多个归约任务各自对应的数据量之前,确定每个归约任务所对应并完成的映射任务满足触发条件。
进一步地,触发条件可以包括如下之一:每个归约任务对应并完成的映射任务的个数大于或等于第一设定阈值。或者,每个归约任务对应并完成的映射任务达到归约任务对应的映射任务的第一完成比例。第一完成比例可以为归约任务对应并完成的映射任务占归约任务对应的全部映射任务的比值。或者,所有已完成的映射任务的个数大于或等于第二设定阈值。或者,所有已完成的映射任务达到全部映射任务的第二完成比例,其中,第二完成比例可以为所有已完成的映射任务占全部映射任务的比值。
一种可能的设计方案中,任务调度装置还包括获取模块,用于获取每个归约任务对应的映射任务的信息。其中,映射任务的信息可以包括映射任务的个数、以及映射任务的标识和位置。
可选地,任务调度装置可以为服务器。获取模块,用于接收每个归约任务对应的映射任务的信息。其中,每个归约任务对应的映射任务的信息通过服务器通信连接的交换机收集。
或者,可选地,任务调度装置可以为交换机。获取模块,用于通过侦听获取每个归约任务对应的映射任务的信息。
进一步地,处理模块,还用于在获取多个归约任务各自对应的数据量之前,通过侦听确定已完成的映射任务。
可选地,任务调度装置还可以包括接收模块。其中,发送模块和接收模块可以集成为一个模块,如收发模块。其中,收发模块用于实现第二方面所述的任务调度装置的发送功能和接收功能。
可选地,第二方面所述的任务调度装置还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得该任务调度装置可以执行第一方面所述的任务调度方法。
第二方面所述的任务调度装置可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
第三方面,提供一种任务调度装置。该任务调度装置用于执行第一方面所述的任务调度方法。
应理解,第三方面所述的任务调度装置包括实现上述第一方面所述的任务调度方法相应的模块、单元、或手段(means),该模块、单元、或手段可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个用于执行上述任务调度方法所涉及的功能的模块或单元。
第四方面,提供一种任务调度装置。该任务调度装置包括:处理器,该处理器用于执行第一方面所述的任务调度方法。
一种可能的设计方案中,第四方面所述的任务调度装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第四方面所述的任务调度装置与其他装置通信。
一种可能的设计方案中,第四方面所述的任务调度装置还可以包括存储器。该存储器可以与处理器集成在一起,也可以分开设置。该存储器可以用于存储第一方面所述的任务调度方法所涉及的计算机程序和/或数据。
第五方面,提供一种任务调度装置。该任务调度装置包括:处理器,该处理器与存储器耦合,该处理器用于执行存储器中存储的计算机程序或指令,以使得该任务调度装置执行第一方面所述的任务调度方法。
一种可能的设计方案中,第五方面所述的任务调度装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第五方面所述的任务调度装置与其他任务调度装置通信。
第六方面,提供了一种任务调度系统,包括:处理器和存储器;该存储器用于存储计算机程序或指令,当该处理器执行该计算机程序或指令时,以使该任务调度系统执行第一方面所述的任务调度方法。
一种可能的设计方案中,第六方面所述的任务调度装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第六方面所述的任务调度装置与其他装置通信。
第七方面,提供了一种任务调度装置,包括:处理器;所述处理器用于与存储器耦合,并读取存储器中的计算机程序或指令之后,根据该计算机程序或指令执行如第一方面所述的任务调度方法。
一种可能的设计方案中,第七方面所述的任务调度装置还可以包括收发器。该收发器可以为收发电路或接口电路。该收发器可以用于第七方面所述的任务调度装置与其他装置通信。
在本申请中,上述第三至第七方面所述的任意一个任务调度装置可以为第二方面中的终端设备或网络设备,或者可设置于该终端设备或网络设备中的芯片(系统)或其他部件或组件,或者包含该终端设备或网络设备的装置。
第八方面,提供一种处理器,用于执行第一方面所述的任务调度方法。
第九方面,提供一种任务调度系统。该任务调度系统包括多个终端设备,以及一个或多个网络设备。
第十方面,提供一种计算机可读存储介质,包括:计算机程序或指令;当该计算机程序或指令在计算机上运行时,使得该计算机执行第一方面所述的任务调度方法。
第十一方面,提供一种计算机程序产品,包括计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行第一方面所述的任务调度方法。
本申请上述第二至第十一方面的技术效果可以参考第一方面所述的任务调度方法的技术效果。
附图说明
图1为本申请实施例提供的分布式系统的架构示意图一;
图2为本申请实施例提供的分布式系统的架构示意图二;
图3为本申请实施例提供的分布式系统的架构示意图三;
图4为本申请实施例提供的分布式系统的架构示意图四;
图5为本申请实施例提供的任务调度方法的流程示意图;
图6为本申请实施例提供的映射任务与归约任务的对应关系图一;
图7为本申请实施例提供的映射任务与归约任务的对应关系图二;
图8为交换机中的数据流向示意图;
图9为本现有的归约任务调度顺序示意图;
图10为本申请实施例提供的归约任务调度顺序示意图一;
图11为本申请实施例提供的归约任务调度顺序示意图二;
图12为本申请实施例提供的归约任务调度顺序示意图三;
图13为本申请实施例提供的归约任务调度顺序示意图四;
图14为本申请实施例提供的任务调度装置的结构示意图一;
图15为本申请实施例提供的任务调度装置的结构示意图二;
图16为本申请实施例提供的任务调度装置的结构示意图三。
具体实施方式
下面首先介绍本申请实施例所涉及的技术术语。
1、资源管理器(resource manager,RM):负责所有资源的监控、分配和管理的功能单元。
2、节点管理器(node manager,NM):负责每一个节点的资源管理和任务管理的功能单元。
3、应用执行管理者(application master,AM):负责每一个具体应用程序的所有任务的调度和协调的功能单元。
4、容器(container):对资源的一种抽象,它封装了某个节点上一定量的资源(中央处理器和内存两类资源),每个容器可用于运行一个任务。
5、远程过程调用(remote procedure call,RPC):一种通过网络从远程计算机程序上请求服务的协议。
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例的技术方案可以应用于各种任务管理系统,例如分布式系统。
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例地”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“信息(information)”,“消息(message)”,有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。“的(of)”,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例中,有时候下标如W1可能会笔误为非下标的形式如W1,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
为便于理解本申请实施例,首先以图1-图4中所示出的任务调度系统为例详细说明适用于本申请实施例的任务调度系统。
示例性地,图1为本申请实施例提供的任务调度方法所适用的任务调度系统的架构示意图一。如图1所示,该任务调度系统包括第一调度设备和第二调度设备。其中,第一调度设备用于处理数据以及与第二调度设备之间进行数据交互。第二调度设备可以用于进行任务调度和协调。上述第一调度设备和第二调度设备可以是终端设备或网络设备。
一种可能的设计方案中,第一调度设备可以用于实现本申请实施例图5中的S501-S503的步骤,关于第一调度设备实现的详细步骤,请参见下述方法实施例。
图1所示的任务调度系统100还可以包括其他网络设备,如网络接口适配器、交换机、路由器等,和/或,终端设备,如服务器、客户端(client)、个人电脑(personalcomputer,PC)、手机、平板电脑(tablet personal computer,tablet PC)。终端设备还可以是其他具有数据处理功能和数据收发功能的设备。
图2为图1中所示出的任务调度系统的示例一。如图2所示,该任务调度系统包括转发设备201、资源管理设备202、任务管理设备203、第一计算设备204。其中,转发设备201分别与资源管理设备202、任务管理设备203和第一计算设备204通信连接。
其中,转发设备201可以用于消息转发,如资源管理设备202与任务管理设备203之间、任务管理设备203与第一计算设备204之间的消息转发。
资源管理设备202,可以是部署资源管理器的设备,主要用于任务调度系统中所有资源的监控、分配和管理,如监控各个设备上的资源分布情况、使用状态等。
任务管理设备203,可以是部署任务管理器的设备,主要用于管理任务,例如,负责每一个具体应用程序的所有任务的调度和协调。
第一计算设备204,可以是部署节点管理器的设备,主要用于执行任务,例如,映射任务和归约任务。可以理解的是,第一计算设备204还可以用于其他数据处理操作。
一种可能的设计方案中,图1中所示出的第一调度设备的功能可由图2中所示出的第一计算设备204来实现。图1中所示出的第二调度设备的功能可由图2中所示出的任务管理设备203来实现。
一种可能的设计方案中,任务调度系统中还可以包括第二计算设备205,第二计算设备205与转发设备201通信连接。第二计算设备205可以是具有数据处理功能的设备。图1中所示出的第一调度设备的功能可由图2中所示出的第二计算设备205来实现。图1中所示出的第二调度设备的功能可由图2中所示出的任务管理设备203来实现。
一种可能的设计方案中,图1中所示出的第一调度设备的功能可由图2中所示出的转发设备201来实现。图1中所示出的第二调度设备的功能可由图2中所示出的任务管理设备203来实现。
为便于描述,图2中所示出的各个设备仅仅画出了一个示例。实际应用中,图2中所示出的同一类型的设备也可以有一个或多个。例如,图2中所示出的第一计算设备可以有一个或多个,本申请实施例对此不作具体限定。
此处任务管理设备203可以用于实现管理任务的功能和执行任务的功能,第一计算设备204可以用于实现执行任务的功能和计算顺序(计算归约任务的调度顺序)的功能。
资源管理设备202的功能可以由任务管理设备203、第一计算设备204、或第二计算设备205实现。任务管理设备203的功能可以由资源管理设备202、第一计算设备204、或第二计算设备205实现。第一计算设备204的功能可以由资源管理设备205、任务管理设备203、或第二计算设备205实现。第二计算设备205的功能可以由资源管理设备202、任务管理设备203、或第二计算设备205实现。
图3为本申请实施例提供的任务调度方法所适用的任务调度系统的架构示意图三。如图3所示,该任务调度系统包括转发设备301、转发设备302、转发设备303、转发设备304、资源管理设备305、任务管理设备306和第一计算设备307。其中,转发设备301分别与转发设备303和转发设备304通信连接。转发设备302分别与转发设备303和转发设备304通信连接。转发设备303分别与资源管理设备305和任务管理设备306通信连接。转发设备304与第一计算设备307通信连接。
其中,转发设备301、转发设备302、转发设备303和转发设备304,主要负责消息转发,如资源管理设备305与任务管理设备306之间、任务管理设备306与第一计算设备307之间的消息转发。
资源管理设备305,可以是部署资源管理器的设备,主要用于任务调度系统中所有资源的监控、分配和管理,如监控各个设备上的资源分布情况、使用状态等。
任务管理设备306,可以是部署任务管理器的设备,主要用于管理任务,例如,负责一个具体应用程序的所有任务的调度和协调。
第一计算设备307,可以是部署节点管理器的设备,主要用于执行任务,例如,映射任务和归约任务。可以理解的是,第一计算设备307还可以用于其他数据处理操作,例如,计算顺序。
一种可能的设计方案中,图1中所示出的第一调度设备的功能可由图3中所示出的转发设备303来实现。图1中所示出的第二调度设备的功能可由图3中所示出的任务管理设备306来实现。
一种可能的设计方案中,图1中所示出的第一调度设备的功能可由图3中的第一计算设备307实现。图1中所示出的第二调度设备的功能可由图3中的任务管理设备306实现。
为便于描述,图3中所示出的各个设备仅仅画出了一个示例。实际应用中,图3中所示出的同一类型的设备也可以有多个。例如,图3中所示出的第一计算设备307可以有一个或者多个。
图3中所示出的资源管理设备305的功能可以由任务管理设备306、或第一计算设备307实现。任务管理设备306的功能可以由资源管理设备305、或第一计算设备307实现。第一计算设备307的功能可以由资源管理设备305、或任务管理设备306实现。
此处任务管理设备306可以同时实现管理任务的功能和执行任务的功能,第一计算设备307可以同时实现执行任务的功能和计算顺序(计算归约任务的调度顺序)的功能。
图4示出了本申请实施例提供的任务调度方法所适用的任务调度系统的架构示意图四。如图4所示,该任务调度系统包括转发设备401、转发设备402、转发设备403、转发设备404、转发设备405、资源管理设备406、任务管理设备407和第一计算设备408。其中,转发设备401分别与转发设备403、转发设备404和转发设备405通信连接。转发设备402分别与转发设备403、转发设备404和转发设备405通信连接。转发设备403与资源管理设备406通信连接。转发设备404分别与任务管理设备407和第一计算设备408通信连接。转发设备405与第一计算设备408通信连接。
其中,转发设备401、转发设备402、转发设备403、转发设备404和转发设备405一起,主要负责消息转发,如资源管理设备406与任务管理设备407之间、任务管理设备407与第一计算设备408之间的消息转发。
资源管理设备406,可以是用于部署资源管理器的设备,主要用于任务调度系统中所有资源的监控、分配和管理,如监控各个设备上的资源分布情况、使用状态等。
任务管理设备407,可以是部署有任务管理器的设备,主要用于管理任务,例如负责每一个具体应用程序的所有任务的调度和协调。
第一计算设备408,可以是部署节点管理器的设备,主要用于执行任务,例如,映射任务和归约任务。可以理解的是,第一计算设备408还可以用于其他数据处理操作,例如,计算顺序(计算归约任务的调度顺序)。
一种可能的设计方案中,图1中所示出的第一调度设备的功能可由图4中所示出的第一计算设备408来实现。图1中所示出的第二调度设备的功能可由图4中所示出的任务管理设备407来实现。
一种可能的设计方案中,图4所示出的任务调度系统还可以包括第二计算设备409。其中,第二计算设备409用于数据处理。此时,图1中所示出的第一调度设备的功能可由图4中的第二计算设备409实现。图1中所示出的第二调度设备的功能可由图4中的任务管理设备407实现。
资源管理设备406的功能可以由任务管理设备407、第一计算设备408、或第二计算设备409实现。任务管理设备407的功能可以由资源管理设备406、第一计算设备408、或第二计算设备409实现。第一计算设备408的功能可以由资源管理设备409、任务管理设备407、或第二计算设备409实现。第二计算设备409的功能可以由资源管理设备406、任务管理设备407、或第一计算设备408实现。
上述各转发设备可以是任意具有数据转发功能的设备,如交换机。上述各资源管理设备、各任务管理设备、各计算设备可以是任意具有数据处理功能和数据收发功能的设备,如服务器、大型计算机等,本申请实施例对此不作具体限定。
为便于描述,图4中所示出的各个设备仅仅画出了一个示例。实际应用中,图4中所示出的同一类型的设备也可以有多个。例如,图4中所示出的第一计算设备408可以包括多个。
其中,上述终端设备为接入上述任务调度系统,且具有收发功能的终端或可设置于该终端的芯片或芯片系统。例如,本申请的实施例中的终端设备可以是服务器、客户端(client)、手机(mobile phone)、平板电脑(Pad)、带收发功能的电脑等。
上述网络设备可以是具有数据处理功能以及收发功能的设备或可置于该设备的芯片或芯片系统。具有收发功能的设备或可设置于该网络设备的芯片(系统)或其他部件或组件,包括但不限于:网络接口适配器、家庭网关、路由器、交换机、网桥等,演进型节点B(evolved Node B,eNB)、网络控制器(network controller,NC)、节点B(Node B,NB)等。
本申请实施例提供的任务调度方法,可以适用于图1所示的第一调度设备,如终端设备或者网络设备,具体实现可以参考下述方法实施例,此处不再赘述。
应当指出的是,本申请实施例中的方案还可以应用于其他任务调度系统中,相应的名称也可以用其他任务调度系统中的对应功能的名称进行替代。
应理解,图1-图4仅为便于理解而示例的简化示意图,该任务调度系统中还可以包括其他网络设备,和/或,其他终端设备,图1-图4中未予以画出。下面结合图5-图13对本申请实施例提供的任务调度方法进行具体阐述。
示例性地,图5为本申请实施例提供的任务调度方法的流程示意图一。该任务调度方法可以适用于图1所示的任务调度系统。
如图5所示,该任务调度方法包括:
S501,第一调度设备获取多个归约任务各自对应的数据量。
其中,第一归约任务的数据量根据第一归约任务对应并完成的一个或多个映射任务输出的第一数据量确定。第一归约任务可以为多个归约任务中的任一归约任务。
一种可能的设计方案中,第一调度设备可以为图2中所示出的第一计算设备204或第二计算设备205,第二调度设备可以为图2中所示出的任务管理设备203。多个归约任务被执行的位置可以是第一计算设备204和/或任务管理设备203,其中,第一计算设备204可以为一个或多个。
另一种可能的设计方案中,第一调度设备可以为图2中所示出的转发设备201,第二调度设备可以为图2中所示出的任务管理设备203。
又一种可能的设计方案中,第一调度设备可以为图3中所示出的转发设备303,第二调度设备可以为图3中示出的任务管理设备306。
再一种可能的设计方案中,第一调度设备可以为图4中所示出的第一计算设备408或者第二计算设备409,第二调度设备可以为图4中示出的任务管理设备407。
示例性地,多个归约任务各自对应的数据量,即多个归约任务中的每个归约任务对应的数据量。
示例性地,第一归约任务对应并完成的一个或多个映射任务,可以是所有已完成的映射任务中,与第一归约任务对应的一个或多个映射任务。
图6为映射任务与归约任务的对应关系示意图。如图6所示,假设一个应用程序可以包括如下4个映射任务:映射任务M1-映射任务M4。其中,映射任务M1输出的数据包括A类型数据,映射任务M2输出的数据包括A类型数据和B类型数据,映射任务M3输出的数据包括A类型数据、B类型数据和C类型数据,映射任务M4输出的数据包括C类型数据。归约任务R1处理A类型数据,归约任务R2处理B类型数据,归约任务R3处理C类型数据。第一归约任务可以为归约任务为R1、归约任务R2和归约任务R3中的任一个。
归约任务R1对应的映射任务为映射任务M1、映射任务M2和映射任务M3,归约任务R2对应的映射任务为映射任务M2和映射任务M3,映射任务R3对应的归约任务为映射任务M3和映射任务M4。若映射任务M1、映射任务M3已经完成,则归约任务R1对应并完成的映射任务包括映射任务M1和映射任务M3。归约任务R1对应的第一数据量可以包括:映射任务M1输出的A类型数据的数据量和映射任务M3输出的A类型数据的数据量。同理,归约任务R2对应并完成的映射任务可以包括M3。归约任务R2对应的第一数据量可以包括:映射任务M3输出的B类型数据的数据量。归约任务R3对应并完成的映射任务可以包括M3。归约任务R3对应的第一数据量可以包括:映射任务M3输出的C类型数据的数据量。
可以理解的是,本申请实施例中,同一映射任务,可以属于不同归约任务对应的映射任务。例如,映射任务M2可以既是归约任务R1对应的映射任务,又是归约任务R2对应的映射任务。同理,同一映射任务,可以是不同归约任务对应并完成的映射任务。例如,映射任务M2已经完成,则映射任务M2既是归约任务R1对应并完成的映射任务,又是归约任务R2对应并完成的映射任务。
一种可能的设计方案中,上述S501,第一调度设备获取多个归约任务各自对应的数据量,可以包括S501-1和S501-2。
S501-1,第一调度设备从每个已完成的映射任务所在的设备,获取多个归约任务各自对应的第一数据量。
示例性地,已完成的映射任务所在的设备可以包括如下一项:图2中所示出的任务管理设备203和/或第一计算设备204、图3中所示出的任务管理设备306和/或第一计算设备307、图4中所示出的任务管理设备407和/或第一计算设备408。
以图6中所示出的映射任务和归约任务为例,若映射任务M1、映射任务M3已经完成。获取多个归约任务各自对应的第一数据量可以包括:获取归约任务R1对应的第一数据量,获取归约任务R2对应的第一数据量,以及获取归约任务R3对应的第一数据量。
S501-2,第一调度设备根据多个归约任务各自对应的第一数据量,计算多个归约任务各自对应的数据量。
示例性地,归约任务对应的数据量可以为该归约任务对应的所有第一数据量之和。
仍然以图6中所示出的映射任务和归约任务为例,若映射任务M1和映射任务M3已经完成,归约任务R1对应的数据量为归约任务R1对应的第一数据量之和,即映射任务M1输出的A类型数据的数据量和映射任务M3输出的A类型数据的数据量之和。归约任务R2对应的数据量为映射任务M3输出的B类型数据的数据量。归约任务R3对应的数据量为映射任务M3输出的C类型数据的数据量。
如此,便可以根据归约任务对应并完成的映射任务,获得归约任务的数据量,通过每个归约任务对应并完成的映射任务的第一数据量来判断归约任务对应的数据量和调度顺序,进一步提高数据处理效率。
可选地,上述S501-2,第一调度设备根据多个归约任务各自对应的第一数据量,计算多个归约任务各自对应的数据量之前,所述方法还可以包括S501-3。
S501-3,第一调度设备确定每个归约任务所对应并完成的映射任务满足触发条件。
示例性地,触发条件可以是各个映射任务的完成状态需要满足的条件。如此,在每个归约任务对应并完成的映射任务满足触发条件后,再计算多个归约任务各自对应的数据量,能够获取足够多的已完成的映射任务输出的各归约任务对应的各类型输出数据的数据量,可以据此确定更为准确的多个归约任务的调度顺序,从而进一步提高数据处理的效率。
进一步地,触发条件可以包括如下之一:每个归约任务对应并完成的映射任务的个数大于或等于第一设定阈值。或者,每个归约任务对应并完成的映射任务达到归约任务对应的映射任务的第一完成比例。其中,第一完成比例可以为归约任务对应并完成的映射任务占归约任务对应的全部映射任务的比值。或者,所有已完成的映射任务的个数大于或等于第二设定阈值;或者,所有已完成的映射任务达到全部映射任务的第二完成比例,其中,第二完成比例可以为所有已完成的映射任务占全部映射任务的比值。
以下结合图7来详细说明上述S501-3的触发条件。如图7所示,应用程序中包括如下9个映射任务:映射任务M5-映射任务M13,应用程序中包括如下3个归约任务:归约任务R4-归约任务R6。其中,归约任务R4对应的映射任务包括映射任务M5-映射任务M10,归约任务R5对应的映射任务包括映射任务M9-映射任务M11,归约任务R6对应的映射任务包括映射任务M11-映射任务M13。
示例性地,每个归约任务对应并完成的映射任务的个数大于或等于第一设定阈值,即归约任务R4对应并完成的映射任务的个数大于或等于第一设定阈值,归约任务R5对应并完成的映射任务的个数大于或等于第一设定阈值,且归约任务R6对应并完成的映射任务的个数大于或等于第一设定阈值。例如,第一设定阈值为2时,那么,归约任务R4对应并完成的映射任务的个数大于或等于2,归约任务R5对应并完成的映射任务的个数大于或等于2,且归约任务R6对应并完成的映射任务的个数等于2,则视为每个归约任务对应并完成的映射任务的个数大于或等于第一设定阈值。
可以理解的是,本申请实施例中,每个归约任务对应的第一设定阈值可以相同,也可以不同,例如,归约任务R4对应的第一设定阈值是3,归约任务R5对应的第一设定阈值是2,归约任务R6对应的第一设定阈值是1。或者,归约任务R4-归约任务R6各自的第一设定阈值均为2,本申请实施例对此不作具体限定。
示例性地,每个归约任务对应并完成的映射任务达到归约任务对应的映射任务的第一完成比例,即归约任务R4对应并完成的映射任务的个数大于或等于第一完成比例,归约任务R5对应并完成的映射任务的个数大于或等于第一完成比例,归约任务R6对应并完成的映射任务的个数大于或等于第一完成比例。例如,第一完成比例为1/3时,那么,归约任务R4对应并完成的映射任务的第一完成比例大于或等于1/3,且归约任务R5对应并完成的映射任务的第一完成比例大于或等于1/3,且归约任务R6对应并完成的映射任务的第一完成比例等于1/3,则视为每个归约任务对应并完成的映射任务达到归约任务对应的映射任务的第一完成比例。
可以理解的是,本申请实施例中,每个归约任务对应的第一完成比例可以相同,也可以不同,例如,归约任务R4对应的第一完成比例可以是1/6,归约任务R5对应的第一完成比例可以是1/3,归约任务R6对应的第一完成比例可以是1/3。或者,归约任务R4-归约任务R6各自对应的第一完成比例均为1/3,本申请实施例对此不作具体限定。
触发条件可以结合第一完成比例和第一设定阈值确定。
示例性地,触发条件可以为:多个归约任务中,部分归约任务对应并完成的映射任务满足第一完成比例,另一部分归约任务对应并完成的映射任务满足第一设定阈值。例如,触发条件可以为:归约任务R4对应并完成的映射任务占归约任务R4对应的映射任务的比例大于等于1/3,归约任务R5对应并完成的映射任务个数大于或等于1,归约任务R6对应并完成的映射任务个数大于或等于1。
示例性地,触发条件可以为:多个归约任务中,各归约任务对应并完成的映射任务满足第一完成比例和/或第一设定阈值。例如:触发条件可以为:归约任务R4对应并完成的映射任务占归约任务R4对应的映射任务的比例大于或等于1/3,和/或归约任务R4对应并完成的映射任务大于或等于3,归约任务R5对应并完成的映射任务个数大于或等于1,归约任务R6对应并完成的映射任务个数大于或等于1。第一设定阈值和第一完成比例取值可以根据实际需求确定,如根据同一类型应用程序的执行记录统计得到,或者可以根据归约任务对应的映射任务的数量得到。本申请实施例对此不作具体限定。
示例性地,所有已完成的映射任务的个数大于或等于第二设定阈值,即映射任务M5-映射任务M13中,已完成的映射任务的个数大于或者等于第二设定阈值。例如,第二设定阈值为2,那么,映射任务M5-映射任务M13中,任意两个或两个以上已经完成,则视为所有已完成的映射任务的个数大于或等于第二设定阈值。
示例性地,所有已完成的映射任务达到全部映射任务的第二完成比例,即映射任务M5-映射任务M13中,已完成的映射任务的比例。例如,第二完成比例为2/9,那么,映射任务M5-映射任务M13中,任意多个已完成的映射任务占所有映射任务比例大于或等于2/9,则视为所有已完成的映射任务达到全部映射任务的第二完成比例。
本申请实施例中,在判断归约任务对应的映射任务是否满足触发条件时,可以根据第二完成比例或第二设定阈值判断,也可以根据第二完成比例和第二设定阈值判断。示例性地,触发条件可以是第二完成比例和第二设定阈值中任一个被满足。例如,所有映射任务的数量比较多,若已完成的映射任务达到一定数量就可以较准确地判断归约任务的数据量,那么,即使已完成的映射任务没有达到设定的第二完成比例,也可以根据已完成的映射任务确定归约任务对应的数据量。又如,所有映射任务数量较少,若按照第二完成比例来确定归约任务的数据量时,已完成的映射任务的数量较少,则可以在已完成的映射任务大于或等于第二设定阈值时,再确定多个归约任务各自对应的数据量。触发条件也可以是第二完成比例和第二设定阈值一起满足。
第一设定阈值、第二设定阈值、第一完成比例和第二完成比例的取值可以根据实际需求确定,如根据同一类型应用程序的执行记录统计得到,并且第一完成比例和第二完成比例的取值可以相同,也可以不同,本申请实施例对此不作具体限定。例如第一完成比例可以为10%,第二完成比例可以为15%。或者,第一完成比例和第二完成比例可以为10%。本申请实施例中,可以将比例和设定阈值结合起来使用。
如此,单独判断每个归约任务对应并完成的映射任务的个数或者第一完成比例,对于每个归约任务,能够获得该归约任务对应的映射任务足够的输出数据,可以据此确定更为准确的多个归约任务的调度顺序,从而进一步提高数据处理的效率。
或者,根据全部的映射任务中所有已完成的映射任务的比例或者个数确定触发条件,能够获取足够多的已完成的映射任务输出的各归约任务对应的各类型输出数据的数据量,可以据此确定更为准确的多个归约任务的调度顺序,从而进一步提高数据处理的效率。
一种可能的设计方案中,所述方法还可以包括S501-4。
S501-4,第一调度设备获取每个归约任务对应的映射任务的信息。
其中,映射任务的信息可以包括映射任务的个数、以及映射任务的标识和位置。示例性地,映射任务的个数,可以是应用程序中所有映射任务的数量。映射任务的标识是用于表示映射任务完成状态的信息。
示例性地,映射任务的位置,可以是运行映射任务的设备。例如,可以包括如下一项或多项:图2中所示出的任务管理设备203和/或第一计算设备204、图3中所示出的任务管理设备306和/或第一计算设备307、或图4中所示出的任务管理设备407和/或第一计算设备408。
可选地,第一调度设备可以为服务器。上述S501-4,第一调度设备获取每个归约任务对应的映射任务的信息可以包括:服务器接收每个归约任务对应的映射任务的信息。
其中,每个归约任务对应的映射任务的信息通过服务器通信连接的交换机收集。
例如,服务器由图2中所示出的第二计算设备205实现,服务器通信连接的交换机由图2中所示出的转发设备201实现时,此时,服务器接收每个归约任务对应的映射任务的信息可以包括步骤1-步骤3。
步骤1,第二计算设备205获取映射任务的个数。
示例性地,客户端(图2中未示出)向资源管理设备202提交应用执行请求,该应用执行请求中可以包括启动信息和应用程序的配置信息。其中,启动信息是用于启动应用程序对应的资源管理器的信息,可以包括如下一项或多项:资源管理器程序、启动资源管理器的命令、或用户的程序。配置信息可以包括如下一项或多项:应用程序需要处理的数据量、各类映射任务和各类归约任务的数量、各任务的资源需求。转发设备201获取客户端发送的应用执行信息,并向资源管理设备202以及第二计算设备205转发。如此,第二计算设备205获得映射任务的个数。
本申请实施例中,映射任务的个数,也可以由资源管理设备202向转发设备201发送,然后再由转发设备201向第二计算设备205转发。
步骤2,第二计算设备205获取映射任务的位置。
示例性地,资源管理设备202在任务调度系统中,申请一个容器,并在该容器上运行任务管理器,运行任务管理器的容器所在的设备为任务管理设备203。接着,任务管理设备203在资源管理设备202上注册。再接着,资源管理设备202向任务管理设备203发送应用程序对应的映射任务。之后,任务管理设备203根据应用程序对应的映射任务向资源管理设备202申请容器,以运行任务。资源管理设备202向任务管理设备203发送其所申请的容器的信息。然后,任务管理设备203再向其申请的容器所在的设备,如第一计算设备204发送任务运行信息,以启动容器运行对应的映射任务。其中,任务运行信息包括映射任务的位置。具体地,任务运行信息首先发送至转发设备201,由转发设备201向第一计算设备204和第二计算设备205转发。如此,第二计算设备205便可以获得各个映射任务的位置。
步骤3,第二计算设备205获取映射任务的标识。
示例性地,第一计算设备204向任务管理设备203发送其上所运行的映射任务的状态信息。其中,映射任务的状态信息包括映射任务的标识,用于表示映射任务的完成状态。具体地,第一计算设备204首先向转发设备201发送映射任务的状态信息,转发设备201再向任务管理设备203以及第二计算设备205转发映射任务的状态信息,如此,第二计算设备205便获得各个映射任务的标识。
可以理解的是,第一计算设备204启动对应的映射任务后,可以与任务管理设备203保持心跳,任务管理设备203在资源管理设备202上注册后,可以与资源管理设备202之间保持心跳。各设备之间可以通过RPC封装消息,如RPC报文来通信。
服务器由图2中所示出的任务管理设备203或第一计算设备204实现,具体实现与由第二计算设备205实现的方式相似。
又如,服务器由图4中所示出的第二计算设备409实现时,服务器通信连接的交换机可以包括图4中所示出的转发设备401、转发设备402、转发设备403、转发设备404和转发设备405。此时,可以通过转发设备401-转发设备405转发消息,从而实现映射任务的信息的获取。示例性地,服务器接收每个归约任务对应的映射任务的信息,可以包括步骤4-步骤6。
步骤4,第二计算设备409获取映射任务的个数。
示例性地,客户端(图4中未示出)向资源管理设备406提交应用执行请求,该应用执行请求中可以包括启动信息和应用程序的配置信息。启动信息是用于启动应用程序对应的资源管理器的信息,可以包括如下一项或多项:资源管理器程序、启动资源管理器的命令、或用户的程序。配置信息可以包括如下一项或多项:应用程序需要处理的数据量、各类映射任务和各类归约任务的数量、各任务(映射任务和归约任务)的资源需求。转发设备403获取客户端发送的应用执行信息,并通过以下一项或多项向转发设备405发送:转发设备401、转发设备401和转发设备404,然后由转发设备405向第二计算设备409转发。如此,第二计算设备409获得映射任务的个数。
本申请实施例中,映射任务的个数,也可以由资源管理设备406发送给转发设备403,然后再由转发设备403向转发设备405以及第二计算设备409转发。
步骤5,第二计算设备409获取映射任务的位置。
示例性地,资源管理设备406在任务调度系统中,申请一个容器,并启动该容器运行任务管理器,部署有用于运行任务管理器的容器的设备可以为任务管理设备407。接着,任务管理设备407在资源管理设备406上注册。再接着,资源管理设备406向任务管理设备407发送应用程序对应的映射任务。之后,任务管理设备407根据应用程序对应的映射任务向资源管理设备406申请容器,资源管理设备406通过转发设备403、转发设备401和转发设备404向任务管理设备407发送其所申请的容器的信息。接着,任务管理设备407再向其申请的容器所在的设备,如第一计算设备408发送任务运行信息,以启动容器运行对应的映射任务。其中,任务运行信息包括映射任务的位置。具体地,任务运行信息首先发送至转发设备404,转发设备403再通过其他转发设备发送给对应的设备,如第一计算设备408。转发设备403通过转发设备402和转发设备405向第二计算设备409转发任务运行信息。如此,第二计算设备409便可以获得各个映射任务的位置。
步骤6,第二计算设备409获取映射任务的标识。
示例性地,第一计算设备408通过各个转发设备向任务管理设备407发送其上所运行的映射任务的状态信息。其中,映射任务的状态信息包括映射任务的标识,用于表示映射任务的完成状态。具体地,第一计算设备408首先向其通信连接的转发设备发送映射任务的状态信息,由其通信连接的转发设备向任务管理设备407以及第二计算设备409发送映射任务的状态信息,如此,第二计算设备409便获得各个映射任务的标识。例如,与转发设备404连接的第一计算设备408对应的映射任务的状态信息,通过转发设备404、转发设备402和转发设备405向第二计算设备409转发,通过转发设备404向任务管理设备407转发。
可以理解的是,第一计算设备408启动对应的映射任务后,可以与任务管理设备407保持心跳。任务管理设备407在资源管理设备406上注册后,可以与资源管理设备406之间保持心跳。各设备之间可以通过RPC封装消息,如RPC报文来通信。
服务器为图4中所示出的任务管理设备407或第一计算设备408时,其具体实现与由第二计算设备409实现的方式类似。
可以理解的是,在其他包括多个转发设备的任务调度系统,如图3所示的任务调度系统中,同样可以采用本申请实施例所示的方案,具体实现可以参照图步骤4-步骤6的实现方案。
当服务器由图4中所示出的第一计算设备408实现时,获取映射任务的信息的实现与由图4中所示出的第二计算设备409实现的方式相似。
可以理解的是,本申请实施例中,客户端可以与转发设备连接,转发设备可以将客户端所发送的应用执行信息转发给第一调度设备,如服务器。
可选地,第一调度设备可以为交换机,上述S501,第一调度设备获取每个归约任务对应的映射任务的信息可以包括:交换机通过侦听获取每个归约任务对应的映射任务的信息。
例如,交换机由图2中所示出的转发设备201实现时,此时,交换机接收每个归约任务对应的映射任务的信息可以包括步骤7-步骤9。
步骤7,转发设备201获取映射任务的个数。
示例性地,客户端(图2中未示出)向资源管理设备202提交应用执行请求,该应用执行请求中包括启动信息和应用程序的配置信息。启动信息是用于启动应用程序对应的资源管理器的信息,可以包括如下一项或多项:资源管理器程序、启动资源管理器的命令、或用户的程序。配置信息可以包括如下一项或多项:应用程序需要处理的数据量、各类映射任务和各类归约任务的数量、各任务的资源需求。具体地,应用执行请求首先发送至转发设备201,并由转发设备201向资源管理设备202转发。如此,转发设备201便可以获得映射任务的个数。
本申请实施例中,映射任务的个数,也可以由资源管理设备202发送给转发设备201,然后再由转发设备201的转发面向控制面转发。
步骤8,转发设备201获取映射任务的位置。
示例性地,资源管理设备202在任务调度系统中,申请一个容器,并启动该容器运行任务管理器,部署有用于运行任务管理器的容器的设备可以为任务管理设备203。接着,任务管理设备203在资源管理设备202上注册。再接着,资源管理设备202向任务管理设备203发送应用程序对应的映射任务。之后,任务管理设备203根据应用程序对应的映射任务向资源管理设备202申请容器,资源管理设备202向任务管理设备203发送其所申请的容器的信息。然后,任务管理设备203再向其申请的容器所在的设备,如第一计算设备204发送任务运行信息,以启动容器运行对应的映射任务。其中,任务运行信息包括映射任务所在的位置。具体地,任务运行信息首先发送至转发设备201,由转发设备201向对应的设备转发。如此,第二计算设备205便可以获得各个映射任务的位置。
步骤9,转发设备201获取映射任务的标识。
示例性地,第一计算设备204向任务管理设备203发送其上所运行的映射任务的状态信息。具体地,第一计算设备204首先向转发设备201发送映射任务的状态信息,其中,映射任务的状态信息可以包括映射任务的标识,由转发设备201向任务管理设备203转发。如此,转发设备201获得各个映射任务的标识。
可以理解的是,第一计算设备204启动对应的映射任务后,可以与任务管理设备203保持心跳。任务管理设备203在资源管理设备202上注册后,可以与资源管理设备202之间保持心跳。各设备之间可以通过RPC封装消息,如RPC报文来通信。
图8为转发设备是交换机时内部的数据流向图。如图8所示,转发设备201可以包括控制面(控制平面)和转发面(转发平面,也可叫做数据转发路径)。其中,转发面用于接收其他设备发送的消息,如报文和向其他设备发送消息。转发面接收到消息后,复制一份消息并向控制面转发,控制面接收并解析消息,获得每个归约任务对应的映射任务的信息。此外,转发面还会向对应的端口转发消息。
例如,交换机的控制面获取其各个端口的RPC报文,然后对RPC报文做反序列化操作,还原出接口对象信息,如:应用提交(submitapplication)信息、容器启动(startcontainers)信息、或完成(done)信息等。其中,应用提交信息中可以包括客户端向任务管理设备203发送的job.xml位置文件,job.xml位置文件中可以包括归约任务的数量。容器启动信息由资源管理设备202向任务管理设备203发送,用于启动任务管理设备203,容器启动信息中可以包括映射任务的位置。完成信息(状态信息)由各个部署有映射任务的第一计算设备204向任务管理设备203发送,完成信息中可以包括对应的映射任务的运行状态,该运行状态可以用于判断映射任务的完成状态。
又如,交换机由图3中所示出的转发设备303实现时,此时,交换机接收每个归约任务对应的映射任务的信息可以包括步骤10-步骤12。
步骤10,转发设备303获取映射任务的个数。
示例性地,客户端(图3中未示出)向资源管理设备305提交应用执行请求,该应用执行请求中可以包括启动信息和应用程序的配置信息。启动信息是用于启动应用程序对应的资源管理器的信息,可以包括如下一项或多项:资源管理器程序、启动资源管理器的命令、或用户的程序。配置信息可以包括如下一项或多项:应用程序需要处理的数据量、各类映射任务和各类归约任务的数量、各任务的资源需求。具体地,应用执行请求可以发送至转发设备303,由转发设备303向资源管理设备305转发,如此,转发设备303获得映射任务的个数。
本申请实施例中,映射任务的个数,也可以由资源管理设备305发送给转发设备303,然后再由转发设备303的转发面复制后转发给控制面。
步骤11,转发设备303获取映射任务的位置。
示例性地,资源管理设备305在任务调度系统中,申请一个容器,并启动该容器运行任务管理器,部署有用于运行任务管理器的容器的设备可以为任务管理设备306。接着,任务管理设备306在资源管理设备305上注册。再接着,资源管理设备305向任务管理设备306发送应用程序对应的映射任务。之后,任务管理设备306根据应用程序对应的映射任务向资源管理设备305申请容器,资源管理设备305向任务管理设备306发送其所申请的容器的信息。接着,任务管理设备306再向其申请的容器所在的设备,如第一计算设备307发送任务运行信息,以启动容器运行对应的映射任务。其中,任务运行信息包括映射任务所在的位置。具体地,任务运行信息首先发送至转发设备303,由转发设备303通过转发设备301、转发设备302和转发设备304向对应的第一计算设备307转发,如此,转发设备303便可以获得各个映射任务的位置。
步骤12,转发设备303获取映射任务的标识。
示例性地,第一计算设备307向任务管理设备306发送其上所运行的映射任务的状态。具体地,第一计算设备307首先向转发设备304发送映射任务的状态,转发设备304再向任务管理设备306发送映射任务的状态信息,其中,状态信息可以包括映射任务的标识。具体地,转发设备304通过转发设备301和/或转发设备302向转发设备303发送映射任务的运行状态信息,由转发设备303向任务管理设备306转发,如此,转发设备303便获得各个映射任务的标识。其中,转发设备303对接收到的消息的处理可以参照图8所示的实现方式。
可以理解的是,本申请实施例中,第一调度设备是交换机时,第一调度设备可以是图3中所示出的任一转发设备或图4中的任一转发设备。其获取映射任务的信息的具体实现与交换机为图3所示出的转发设备303时获取映射任务的信息的具体实现相似。
可以理解的是,在其他包括多个转发设备的任务调度系统中,同样可以采用本申请实施例所示的方案,具体实现可以参照步骤4-步骤6或步骤10-步骤12的实现方案。
如此,可以通过交换机来获取多个归约任务的调度顺序,复用交换机,可以降低设备成本。
进一步地,上述S501,第一调度设备获取多个归约任务各自对应的数据量之前,所述方法还可以包括:第一调度设备通过侦听确定已完成的映射任务。
示例性地,第一调度设备接收其他设备发送的消息,并过滤和解析,然后从解析后的消息中获取各个映射任务的状态信息,从而确定已完成的映射任务。例如,在第一调度设备为交换机时,交换机的转发面接收并转发消息,转发面向控制面转发消息,而控制面解析消息获得各个映射任务的状态信息,从而确定已完成的映射任务。
如此,第一调度设备能够及时确定已完成的映射任务,并确定多个归约任务的调度顺序,提高数据处理的效率。
可以理解的是,映射任务所在的设备也可以收集映射任务的状态信息,并在映射任务完成时,向任务管理设备发送对应映射任务的状态信息。
S502,第一调度设备根据多个归约任务中每个归约任务对应的数据量确定多个归约任务的调度顺序。
示例性地,多个归约任务的调度顺序,可以是按照每个归约任务对应的数据量从大到小、或根据空闲资源所能处理的数据量大小间隔排列。
一种可能的设计方案中,多个归约任务的调度顺序指示优先调度对应的数据量大的归约任务。
以前述包含归约任务R1、归约任务R2和归约任务R3的应用程序为例,若归约任务R1、R2、R3对应的数据量依次为D1、D2、D3,且D3>D2>D1,每相邻两个时刻之间的时长为T。图9为根据归约任务的调度条件调度归约任务的顺序示意图,如图9所示,若归约任务R2最先满足调度条件,归约任务R1第二个满足调度条件,归约任务R3第三个满足调度条件,则根据归约任务的调度条件调度归约任务R1、R2、R3的顺序依次为:归约任务R2、归约任务R1、归约任务R3。图10为根据调度顺序调度归约任务的顺序示意图,如图10所示,根据调度顺序调度归约任务R1、R2、R3的顺序依次为:归约任务R3、归约任务R2、归约任务R1。
可见,在资源受限的情况下,若根据调度条件调度,归约任务R2启动一段时间后,资源仅能够满足归约任务R1的启动,归约任务R2执行完成后,归约任务R3才能启动,三个归约任务运行的总时长为5T。而按照调度顺序优先调度数据量大的归约任务,归约任务R3会首先启动,在归约任务R3运行时长T后,空闲的资源满足归约任务R2启动,则归约任务R2启动。归约任务R2启动T后,空闲的资源满足归约任务R1启动,此时启动归约任务R1,如此,三个归约任务总共的完成时长为3T。
由此可见,优先调度数据量大的归约任务,可以确保数据量大的归约任务得到优先执行,以避免数据量大的归约任务成为执行应用程序的关键路径,从而减少应用程序的总体执行时长,以提高应用程序的执行效率。
S503,第一调度设备向第二调度设备发送多个归约任务的调度顺序。
其中,归约任务的调度顺序用于指示第二调度设备根据调度顺序调度多个归约任务。
第一调度设备可以向第二调度设备发送RPC封装消息,如RPC报文。其中,RPC封装消息包括调度顺序。
S504,第二调度设备根据多个归约任务的调度顺序调度多个归约任务。
可选地,第二调度设备可以按照归约任务的调度顺序调度归约任务。
图11为本申请实施例中归约任务的调度示意图二。如图11所示,每两个相邻时刻之间的时间长度为T,归约任务1-归约任务5的数据量分别为:5、4、3、2和2,资源总量为6。若每个归约任务在执行过程中,释放资源的速度为1/T,即一个归约任务在T时间长度内,释放的资源为1,即可以处理的数据量为1。在t1时刻,总共的资源可处理的数据量为6,此时,启动归约任务1。在t4时刻,归约任务1释放的资源为3,此时,空闲的资源为4,满足归约任务2对资源的需求,则启动归约任务4。同理,在(t5+t6)/2时刻,空闲的资源为3,满足归约任务3的资源需求,则启动归约任务3。在(t6+t7)/2时刻,空闲的资源为2,满足归约任务4的资源需求,则启动归约任务4。在t7-t8之间的某个时刻,空闲的资源为2,满足归约任务5的资源需求,则启动归约任务5。归约任务5的完成时间在t9时刻和t10时刻之间。
进一步地,可以结合调度顺序和系统中空闲资源的情况调度归约任务,使调度的归约任务所需要的资源大小与空闲的资源大小尽可能匹配。
例如,可以尽量不影响一些较大的归约任务与调度顺序对应的启动时间的情况下,优先调度一些数据量更小的归约任务。
图12为本申请实施例中归约任务的调度示意图三。如图12所示,仍然以归约任务1-归约任务5为例,在t1时刻,总共的资源可处理的数据量为6,则启动归约任务1,空闲资源变为1。按照调度顺序,归约任务2最早的可能调度时间是t4时刻。在t2时刻,空闲的资源量变为2,而归约任务5对资源的需求为2,也就是说,如果在t2时刻调度启动归约任务5,则在t4时刻,归约任务5和归约任务1释放的资源量为4,并不会影响归约任务2的启动时间,因此,可以在t2时刻启动归约任务5。归约任务3、归约任务4的启动时间与图11中相似,归约任务3、归约任务4的调度实现可以参照图11中归约任务3、归约任务4的调度。这样,归约任务4在t8-t9之间的时刻即可完成。
结合图11和图12,可以看出,图11中,归约任务5的完成时间即应用程序的完成时间,图12中,归约任务4的完成时间即应用程序的完成时间,图12中应用程序的完成时间,较图11中应用程序的完成时间短。
本申请实施例中,在根据调度顺序调度归约任务时,可以多个归约任务并行运行。图11和图12中的示例仅用于说明本申请实施例的方案,并不用于具体限定。
可选地,上述S504,第二调度设备根据多个归约任务的调度顺序调度多个归约任务可以包括S504-1和S504-2。
S504-1,第二调度设备获取所有归约任务的调度状态。
其中,调度状态用于指示归约任务是否已经被调度。
示例性地,获取所有归约任务的调度状态,可以根据某一归约任务的调度条件来判断归约任务的完成状态。
示例性地,调度条件可以是应用程序的所有映射任务中,已完成的映射任务的比例。例如,所有已完成的映射任务占所有映射任务的比例大于或等于第三完成比例,则可以判断该归约任务已经被调度。
S504-2,第二调度设备根据多个归约任务的调度顺序调度未被调度的归约任务。
图13为归约任务的调度示意图四,如图13所示,若归约任务1-归约任务5的调度顺序为:归约任务1、归约任务2、归约任务3、归约任务4、归约任务5。若归约任务3和归约任务5对应的调度条件被满足,则可以先启动归约任务3和归约任务5。然后根据调度顺序启动归约任务1、归约任务2和归约任务4,具体的调度过程为:先启动归约任务1,再启动归约任务2,然后启动归约任务4。
如此,根据调度条件先调度部分归约任务,根据调度顺序来调度剩余的(未被调度)的归约任务,能够使归约任务的调度方案更加灵活,同时还能够提高数据处理效率。
基于上述任务调度方法,根据多个归约任务中每个归约任务对应的数据量,确定多个归约任务的调度顺序,可以提高不同归约任务之间的并行度,从而提高数据处理效率。
以上结合图5-图13详细说明了本申请实施例提供的任务调度方法。以下结合图14-图16详细说明用于执行本申请实施例提供的任务调度方法的任务调度装置。
示例性地,图14是本申请实施例提供的任务调度装置的结构示意图一。如图14所示,任务调度装置1400包括:处理模块1401和发送模块1402。为了便于说明,图14仅示出了该任务调度装置的主要部件。
一些实施例中,任务调度装置1400可适用于图1中所示出的任务调度系统中,执行图5中所示出的任务调度方法中第一调度设备的功能。
其中,处理模块1401,用于获取多个归约任务各自对应的数据量。其中,第一归约任务的数据量根据第一归约任务对应并完成的一个或多个映射任务输出的第一数据量确定。第一归约任务为多个归约任务中的任一归约任务。
处理模块1401,还用于根据多个归约任务中每个归约任务对应的数据量确定多个归约任务的调度顺序。
发送模块1402,用于向第二调度设备发送多个归约任务的调度顺序。其中,归约任务的调度顺序用于指示第二调度设备根据调度顺序调度多个归约任务。
一种可能的设计方案中,多个归约任务的调度顺序指示优先调度对应的数据量大的归约任务。
一种可能的设计方案中,处理模块1401,还用于从每个已完成的映射任务所在的设备获取已完成的映射任务的第一数据量。根据所有已完成的映射任务的第一数据量计算多个归约任务各自对应的数据量。
可选地,处理模块1401,还用于在根据所有已完成的映射任务的第一数据量,计算多个归约任务各自对应的数据量之前,确定每个归约任务所对应并完成的映射任务满足触发条件。
进一步地,触发条件可以包括如下之一:每个归约任务对应并完成的映射任务的个数大于或等于设定阈值。或者,每个归约任务对应并完成的映射任务达到归约任务对应的映射任务的完成比例。其中,完成比例可以为归约任务对应并完成的映射任务占归约任务对应的全部映射任务的比值。
一种可能的设计方案中,任务调度装置1400还包括获取模块1403。获取模块1403,用于获取每个归约任务对应的映射任务的信息。映射任务的信息可以包括映射任务的个数、以及映射任务的标识和位置。
可选地,任务调度装置1400可以为服务器。获取模块1403,用于接收每个归约任务对应的映射任务的信息。其中,每个归约任务对应的映射任务的信息通过服务器通信连接的交换机收集。
可选地,任务调度装置1400可以为交换机。获取模块1403,用于通过侦听获取每个归约任务对应的映射任务的信息。
进一步地,处理模块1401,还用于在获取多个归约任务各自对应的数据量之前,通过侦听确定已完成的映射任务。
可选地,任务调度装置1400还可以包括接收模块(图14中未示出),接收模块和发送模块1402可以集成为收发模块。其中,收发模块1402用于实现任务调度装置1400的发送功能和接收功能。
可选地,任务调度装置1400还可以包括存储模块(图14中未示出),该存储模块存储有程序或指令。当处理模块1401执行该程序或指令时,使得该任务调度装置1400可以执行图2所示的任务调度方法。
应理解,任务调度装置1400中涉及的处理模块1401可以由处理器或处理器相关电路组件实现,可以为处理器或处理单元;收发模块1402可以由收发器或收发器相关电路组件实现,可以为收发器或收发单元。
任务调度装置1400可以是终端设备,如个人电脑,服务器,也可以是可设置于终端设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。
此外,任务调度装置1400的技术效果可以参考图5所示出的任务调度方法的技术效果,此处不再赘述。
示例性地,图15为本申请实施例提供的任务调度装置的结构示意图15。该任务调度装置可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备的芯片(系统)或其他部件或组件。如图15所示,任务调度装置1500可以包括处理器1501。
可选地,任务调度装置1500还可以包括存储器1502和/或收发器1503。其中,处理器1501与存储器1502和收发器1503耦合,如可以通过通信总线连接。
下面结合图15对任务调度装置1500的各个构成部件进行具体的介绍:
其中,处理器1501是任务调度装置1500的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器1501是一个或多个中央处理器(central processingunit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(micro-processor),或,一个或者多个现场可编程门阵列(field programmable gatearray,FPGA)。
可选地,处理器1501可以通过运行或执行存储在存储器1502内的软件程序,以及调用存储在存储器1502内的数据,执行任务调度装置1500的各种功能。
在具体的实现中,作为一种实施例,处理器1501可以包括一个或多个CPU,例如图15中所示出的CPU0和CPU1。
在具体实现中,作为一种实施例,任务调度装置1500也可以包括多个处理器,例如图2中所示的处理器1501和处理器1504。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
其中,存储器1502用于存储执行本申请方案的软件程序,并由处理器1501来控制执行,具体实现方式可以参考上述方法实施例,此处不再赘述。
可选地,存储器1502可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1502可以和处理器1501集成在一起,也可以独立存在,并通过通任务调度装置1500的接口电路(图15中未示出)与处理器1501耦合,本申请实施例对此不作具体限定。
收发器1503,用于与其他装置之间的通信。例如,任务调度装置1500为终端设备,收发器1503可以用于与网络设备通信,或者与另一个终端设备通信。又例如,任务调度装置1500可以为网络设备,收发器1503可以用于与终端设备通信,或者与另一个网络设备通信。
可选地,收发器1503可以包括接收器和发送器(图15中未单独示出)。其中,接收器用于实现接收功能,发送器用于实现发送功能。
可选地,收发器1503可以和处理器1501集成在一起,也可以独立存在,并通过任务调度装置1500的接口电路(图15中未示出)与处理器1501耦合,本申请实施例对此不作具体限定。
图15中示出的任务调度装置1500的结构并不构成对该任务调度装置的限定,实际的任务调度装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,任务调度装置1500的技术效果可以参考上述方法实施例所述的任务调度方法的技术效果,此处不再赘述。
示例性地,图16为本申请实施例提供的任务调度装置的结构示意图。该任务调度装置可以是网络设备,也可以是可设置于网络设备的芯片(系统)或其他部件或组件。例如,任务调度装置16可以是路由器或者三层交换机。如图16所示,该任务调度装置1600可以包括主控板1610和接口板1620。主控板1610和接口板1620通信连接。
可选地,主控板1610可以包括处理器1611和存储器1612。其中,处理器1611与存储器1612耦合,如可以通过通信总线连接。接口板162可以包括处理器1621、存储器1622和接口卡1623。其中,存储器1622与处理器1621和接口卡1623耦合。如可以通过通信总线连接。
下面结合图16对任务调度装置1600的各个构成部件进行具体的介绍:
其中,处理器1611是任务调度装置1600的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器1611是一个或多个CPU,也可以是ASIC,或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器,或,一个或者多个FPGA。
可选地,处理器1611可以通过运行或执行存储在存储器1612内的软件程序,以及调用存储在存储器1612内的数据,执行报文生成的功能。
在具体的实现中,作为一种实施例,处理器1621可以包括一个或多个CPU。
其中,处理器1621是任务调度装置1600的消息收发控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器1621是一个或多个CPU,也可以是ASIC,或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器,或,一个或者多个FPGA。
可选地,处理器1621可以通过运行或执行存储在存储器1622内的软件程序,以及调用存储在存储器1622内的数据,执行消息,如报文收发的功能。
在具体的实现中,作为一种实施例,处理器1621可以包括一个或多个CPU。
其中,存储器1612和存储器1622和用于存储执行本申请方案的软件程序,并由处理器1611、处理器1621来控制执行,具体实现方式可以参考上述方法实施例,此处不再赘述。
可选地,存储器1612和存储器1622可以是ROM、或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1612可以和处理器1611集成在一起,也可以独立存在,并通过任务调度装置1600的接口电路(图16中未示出)与处理器1611耦合,存储器1622可以和处理器1621集成在一起,也可以独立存在,并通过任务调度装置1600的接口电路(图16中未示出)与处理器1621耦合,本申请实施例对此不作具体限定。
接口卡1623,用于与其他装置之间的通信。例如,任务调度装置1600可以为网络设备,接口卡1623可以用于与终端设备通信,或者与另一个网络设备通信。
可选地,接口卡1623以包括接收器和发送器(图16中未单独示出)。其中,接收器用于实现接收功能,发送器用于实现发送功能。
可选地,接口卡1623可以和处理器1621集成在一起,也可以独立存在,并通过任务调度装置1600的接口电路(图16中未示出)与处理器1621耦合,本申请实施例对此不作具体限定。
图16中示出的任务调度装置1600的结构并不构成对该任务调度装置的限定,实际的任务调度装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,接口板1620可以有一个或多个,接口板1620的处理器、存储器,和/或接口卡可以有一个或多个。主控板1621的处理器,和/或存储器可以有一个或多个。
此外,任务调度装置1600的技术效果可以参考上述方法实施例所述的任务调度方法的技术效果,此处不再赘述。
本申请实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。
示例性的,本申请各实施例中的存储器可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambusRAM,DR RAM)。
示例性的,本申请各实施例中的处理器可以是FPGA,专用集成芯片(applicationspecific integrated circuit,ASIC),片上系统(system on chip,SoC),CPU,网络处理器(network processor,NP),数字信号处理电路(digital signal processor,DSP),微控制器(micro controller unit,MCU),可编程逻辑器件(programmable logic device,PLD)或其他集成芯片。
本申请实施例提供一种任务调度系统。该任务调度系统包括上述多个终端设备,以及多个网络设备。该任务调度系统用于实现上述各实施例中的方法。
本申请实施例提供一种任务调度系统。该任务调度系统包括:处理器和存储器;存储器用于存储计算机程序或指令,当处理器执行计算机程序或指令时,以使任务调度系统执行上述各实施例中的方法。
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (24)

1.一种任务调度方法,其特征在于,所述方法包括:
获取多个归约任务各自对应的数据量,其中,第一归约任务的数据量根据所述第一归约任务对应并完成的一个或多个映射任务输出的第一数据量确定,所述第一归约任务为所述多个归约任务中的任一归约任务;
根据所述多个归约任务中每个归约任务对应的数据量确定所述多个归约任务的调度顺序;
发送所述多个归约任务的调度顺序,其中,所述归约任务的调度顺序用于指示根据所述调度顺序调度所述多个归约任务。
2.根据权利要求1所述的任务调度方法,其特征在于,所述多个归约任务的调度顺序指示优先调度对应的数据量大的归约任务。
3.根据权利要求1或2所述的任务调度方法,其特征在于,所述获取多个归约任务各自对应的数据量,包括:
从每个已完成的映射任务所在的设备,获取所述多个归约任务各自对应的第一数据量;
根据所述多个归约任务各自对应的第一数据量,计算所述多个归约任务各自对应的数据量。
4.根据权利要求3所述的任务调度方法,其特征在于,所述根据所述多个归约任务各自对应的第一数据量,计算所述多个归约任务各自对应的数据量之前,所述方法还包括:
确定每个归约任务所对应并完成的映射任务满足触发条件。
5.根据权利要求4所述的任务调度方法,其特征在于,所述触发条件包括如下之一:
每个归约任务对应并完成的映射任务的个数大于或等于第一设定阈值;或者,
每个归约任务对应并完成的映射任务,达到所述归约任务对应的映射任务的第一完成比例,其中,所述第一完成比例为所述归约任务对应并完成的映射任务占所述归约任务对应的全部映射任务的比值;或者,
所有已完成的映射任务的个数大于或等于第二设定阈值;或者,
所述所有已完成的映射任务达到全部映射任务的第二完成比例,其中,所述第二完成比例为所述所有已完成的映射任务占全部映射任务的比值。
6.根据权利要求1-5中任意一项所述的任务调度方法,其特征在于,所述方法还包括:
获取每个归约任务对应的映射任务的信息,其中,所述映射任务的信息包括所述映射任务的个数、以及所述映射任务的标识和位置。
7.根据权利要求6所述的任务调度方法,其特征在于,所述获取每个归约任务对应的映射任务的信息,包括:
服务器接收每个归约任务对应的映射任务的信息,其中,每个归约任务对应的映射任务的信息通过所述服务器通信连接的交换机收集。
8.根据权利要求6所述的任务调度方法,其特征在于,所述获取每个归约任务对应的映射任务的信息,包括:
交换机通过侦听获取每个归约任务对应的映射任务的信息。
9.根据权利要求1-8中任一项所述的任务调度方法,其特征在于,所述获取多个归约任务各自对应的数据量之前,所述方法还包括:
通过侦听确定已完成的映射任务。
10.一种任务调度装置,其特征在于,所述任务调度装置包括:处理模块和发送模块;其中,
所述处理模块,用于获取多个归约任务各自对应的数据量,其中,第一归约任务的数据量根据所述第一归约任务对应并完成的一个或多个映射任务输出的第一数据量确定,所述第一归约任务为所述多个归约任务中的任一归约任务;根据所述多个归约任务中每个归约任务对应的数据量确定所述多个归约任务的调度顺序;
所述发送模块,用于发送所述多个归约任务的调度顺序,其中,所述归约任务的调度顺序用于指示根据所述调度顺序调度所述多个归约任务。
11.根据权利要求10所述的任务调度装置,其特征在于,所述多个归约任务的调度顺序指示优先调度对应的数据量大的归约任务。
12.根据权利要求10或11所述的任务调度装置,其特征在于,所述处理模块,还用于:
从每个已完成的映射任务所在的设备,获取所述多个归约任务各自对应的第一数据量;
根据所述多个归约任务各自对应的第一数据量,计算所述多个归约任务各自对应的数据量。
13.根据权利要求12所述的任务调度装置,其特征在于,
所述处理模块,还用于在根据所述多个归约任务各自对应的第一数据量,计算所述多个归约任务各自对应的数据量之前,确定每个归约任务所对应并完成的映射任务满足触发条件。
14.根据权利要求13所述的任务调度装置,其特征在于,所述触发条件包括如下之一:
每个归约任务对应并完成的映射任务的个数大于或等于第一设定阈值;或者,
每个归约任务对应并完成的映射任务,达到所述归约任务对应的映射任务的第一完成比例,其中,所述第一完成比例为所述归约任务对应并完成的映射任务占所述归约任务对应的全部映射任务的比值;或者,
所有已完成的映射任务的个数大于或等于第二设定阈值;或者,
所述所有已完成的映射任务达到全部映射任务的第二完成比例,其中,所述第二完成比例为所述所有已完成的映射任务占全部映射任务的比值。
15.根据权利要求10-14中任意一项所述的任务调度装置,其特征在于,还包括获取模块,
所述获取模块,用于获取每个归约任务对应的映射任务的信息,其中,所述映射任务的信息包括所述映射任务的个数、以及所述映射任务的标识和位置。
16.根据权利要求15所述的任务调度装置,其特征在于,所述任务调度装置为服务器;
所述获取模块,用于接收每个归约任务对应的映射任务的信息,其中,每个归约任务对应的映射任务的信息通过所述服务器通信连接的交换机收集。
17.根据权利要求15所述的任务调度装置,其特征在于,所述任务调度装置为交换机;
所述获取模块,用于通过侦听获取每个归约任务对应的映射任务的信息。
18.根据权利要求10-17中任一项所述的任务调度装置,其特征在于,
所述处理模块,还用于在获取多个归约任务各自对应的数据量之前,通过侦听确定已完成的映射任务。
19.一种任务调度装置,其特征在于,所述任务调度装置包括处理器;
所述处理器用于执行如权利要求1-9中任一项所述的任务调度方法。
20.一种任务调度装置,其特征在于,包括:处理器,所述处理器与存储器耦合;
所述处理器,用于执行所述存储器中存储的计算机程序或指令,以使得所述任务调度装置执行如权利要求1-9中任一项所述的任务调度方法。
21.一种任务调度系统,其特征在于,包括:处理器和存储器;所述存储器用于存储计算机程序或指令,当所述处理器执行所述计算机程序或指令时,以使所述任务调度系统执行如权利要求1-9中任一项所述的任务调度方法。
22.一种任务调度装置,其特征在于,包括:处理器和接口电路;其中,
所述接口电路,用于接收代码指令并将所述代码指令传输至所述处理器;
所述处理器用于运行所述代码指令以执行如权利要求1-9中任一项所述的方法。
23.一种处理器,其特征在于,包括:所述处理器用于执行如权利要求1-9中任一项所述的任务调度方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机执行如权利要求1-9中任一项所述的任务调度方法。
CN202011284637.XA 2020-11-17 2020-11-17 任务调度方法、装置及系统 Pending CN114510325A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011284637.XA CN114510325A (zh) 2020-11-17 2020-11-17 任务调度方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011284637.XA CN114510325A (zh) 2020-11-17 2020-11-17 任务调度方法、装置及系统

Publications (1)

Publication Number Publication Date
CN114510325A true CN114510325A (zh) 2022-05-17

Family

ID=81546137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011284637.XA Pending CN114510325A (zh) 2020-11-17 2020-11-17 任务调度方法、装置及系统

Country Status (1)

Country Link
CN (1) CN114510325A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023246709A1 (zh) * 2022-06-25 2023-12-28 华为技术有限公司 数据处理方法、装置、设备和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023246709A1 (zh) * 2022-06-25 2023-12-28 华为技术有限公司 数据处理方法、装置、设备和系统

Similar Documents

Publication Publication Date Title
US10805363B2 (en) Method, device and system for pushing file
WO2018006381A1 (zh) 一种网络资源的管理方法、装置及系统
CN108319496B (zh) 资源访问方法、业务服务器、分布式系统及存储介质
CN107251486B (zh) 一种扩展联动的方法、装置及系统
CN108885564B (zh) 网络虚拟化场景中的资源放置控制
US11948021B2 (en) Method for inter-core communication, processor, inter-core communication system and computer readable storage medium
US11042414B1 (en) Hardware accelerated compute kernels
EP3499842A1 (en) Calculation capability description method, interaction method and device for fog computing
CN109614232B (zh) 任务处理方法、装置、存储介质和电子装置
WO2022056845A1 (en) A method of container cluster management and system thereof
US11042413B1 (en) Dynamic allocation of FPGA resources
CN111586140A (zh) 一种数据交互的方法及服务器
CN113886058A (zh) 一种跨集群资源调度方法和装置
CN113495776A (zh) Vnf实例化方法及装置
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN114510325A (zh) 任务调度方法、装置及系统
CN111835809B (zh) 工单消息分配方法、装置、服务器及存储介质
CN107111662B (zh) 用于处理数据的系统、装置和方法
CN109639599B (zh) 网络资源调度方法及系统、存储介质及调度设备
WO2022151386A1 (zh) 一种节点分批升级的方法、相关装置以及设备
US11797342B2 (en) Method and supporting node for supporting process scheduling in a cloud system
CN114764346A (zh) 一种数据传输方法、系统以及计算节点
CN113032166B (zh) 核间通信的方法、处理器、核间通信系统及计算机可读存储介质
WO2021057844A1 (zh) 一种创建pm任务的方法及装置
CN113835850A (zh) 任务处理方法、系统及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination