CN115629854A - 分布式任务调度方法、系统、电子设备和存储介质 - Google Patents
分布式任务调度方法、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115629854A CN115629854A CN202211247126.XA CN202211247126A CN115629854A CN 115629854 A CN115629854 A CN 115629854A CN 202211247126 A CN202211247126 A CN 202211247126A CN 115629854 A CN115629854 A CN 115629854A
- Authority
- CN
- China
- Prior art keywords
- node
- execution
- task
- nodes
- subtasks
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种分布式任务调度方法、系统、电子设备和存储介质,该方法通过确定数据任务中待分配的子任务,向协调节点发送任务查询指令,指示协调节点反馈各执行节点的任务执行信息,并根据各执行节点的任务执行信息,确定各执行节点的目标优先级,根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理,如此,可以实现任务的灵活分配,合理配置节点资源,通过减少处理器之间的负载不均衡的可能性,提升任务调度效果。
Description
技术领域
本发明涉及计算机网络技术领域,具体涉及一种分布式任务调度方法、系统、电子设备和存储介质。
背景技术
现有的任务调度技术中,通常是单个处理器的轮询多个任务进行处理或者并发处理多个任务,这种方式较为单一,无法利用整个集群多台服务器的资源,且无法动态的调整处理能力,使得任务调度效果差。
发明内容
本发明实施例提供一种分布式任务调度方法、系统、电子设备和存储介质,以提升任务调度效果。
一方面,本发明实施例提供一种分布式任务调度方法,所述方法应用在主节点,所述方法包括:
确定数据任务中待分配的子任务;
向协调节点发送任务查询指令,所述任务查询指令用于指示所述协调节点反馈各执行节点的任务执行信息;所述任务执行信息包括所执行任务的数量;
根据各所述执行节点的任务执行信息,确定各所述执行节点的目标优先级;
根据各所述执行节点的目标优先级,确定各所述子任务对应的目标执行节点,将各所述子任务分配至所述各所述子任务对应的目标执行节点进行数据处理。
另一方面,本发明实施例提供一种分布式任务调度方法,所述方法应用于协调节点,所述协调节点存储有执行节点的注册序号以及各所述执行节点的执行任务数据;所述方法包括:
接收主节点发送的任务查询指令,根据所述任务查询指令查询各所述执行节点的执行任务数据,确定各所述执行节点的任务执行信息,向所述主节点反馈各执行节点的任务执行信息,以使主节点根据各所述执行节点的任务执行信息,确定各所述执行节点的目标优先级,根据各所述执行节点的目标优先级,确定各所述子任务对应的目标执行节点,将各所述子任务分配至所述各所述子任务对应的目标执行节点进行数据处理。
另一方面,本发明实施例提供一种分布式任务调度系统,所述系统包括主节点、协调节点和至少一个协调节点;
所述主节点,用于确定数据任务中待分配的子任务,向协调节点发送任务查询指令,所述任务查询指令用于指示所述协调节点反馈各执行节点的任务执行信息;所述任务执行信息包括所执行任务的数量;
所述协调节点,用于接收所述主节点发送的任务查询指令,根据所述任务查询指令查询各所述执行节点的执行任务数据,确定各所述执行节点的任务执行信息,向所述主节点反馈各执行节点的任务执行信息;
所述主节点,用于根据各所述执行节点的任务执行信息,确定各所述执行节点的目标优先级,根据各所述执行节点的目标优先级,确定各所述子任务对应的目标执行节点,将各所述子任务分配至所述各所述子任务对应的目标执行节点进行数据处理;
所述执行节点,用于根据所述主节点分配的所述子任务进行数据处理。
另一方面,本发明实施例提供一种电子设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行上述方法中的操作。
另一方面,本发明实施例提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述方法中的步骤。
本发明实施例通过确定数据任务中待分配的子任务,向协调节点发送任务查询指令,指示协调节点反馈各执行节点的任务执行信息,并根据各执行节点的任务执行信息,确定各执行节点的目标优先级,根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理。本发明实施例根据各执行节点的优先级将数据任务中的子任务分配给各子任务对应的目标执行节点进行数据处理,如此,可以实现任务的灵活分配,合理配置节点资源,通过减少处理器之间的负载不均衡的可能性,提升任务调度效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的分布式任务协调系统的结构示意图;
图2是本发明实施例提供的分布式任务调度方法的流程示意图;
图3是本发明实施例提供的数据任务分解的示意图;
图4是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,不同服务器的租户对应多个待处理的常驻任务,且多个任务直接可以根据相关性进行分组,一个组内的任务往往是由一个大任务进行物理拆分构成的,所以一个组内的所有任务的数据量和数据的高峰/低谷时间基本相同。在处理任务时,通常是单个处理器的轮询多个任务进行处理或者并发处理多个任务,这种方式较为单一,无法利用整个集群多台服务器的资源,且无法动态的调整处理能力,使得任务调度效果差,使得处理器之间负载不均衡,可能造成任务处理不及时,可能出现生产问题。
基于此,本发明实施例提供一种分布式任务调度方法,该方法根据各执行节点的任务执行信息确定各执行节点的优先级,通过各执行节点的优先级将数据任务中的子任务分配给各子任务对应的目标执行节点进行数据处理,如此,可以实现任务的灵活分配,合理配置节点资源,以减少处理器之间的负载不均衡的可能性。
如图1所示,图1是本发明实施例提供的分布式任务协调系统的结构示意图,所示的分布式任务协调系统包括主节点101、协调节点102和执行节点103、104和105。
其中,主节点和执行节点采用相同的配置,主节点101和执行节点103、104和105分别和协调节点102通信连接。主节点101和执行节点103、104和105可以是服务器、云服务器、处理器等;协调节点102是提供分布式应用协调服务的节点,例如Zookeeper,其上存储有执行节点103、104和105和主节点101各自对应的注册序号,以及执行节点103、104和105和主节点101各自对应的执行任务数据,协调节点102根据注册序号确定主节点和执行节点。其中,执行任务数据包括任务信息、所执行任务的数量、所执行任务的任务类型以及所执行任务的处理进度。其中,处理进度包括但不限于未处理、正在处理、已处理和停止处理;注册序号至少主节点101和执行节点103、104和105各自对应的注册顺序。
在本发明一些实施例中,主节点101和执行节点103、104和105各自在启动时,会到协调节点102上注册临时顺序节点,协调节点102根据主节点101和执行节点103、104和105各自对应的临时顺序节点的注册时间分配注册序号。临时顺序节点中存储有所执行任务的执行任务数据。
在本发明一些实施例中,主节点101,用于确定数据任务中待分配的子任务,向协调节点102发送任务查询指令,任务查询指令用于指示协调节点反馈执行节点103、104和105各自对应的任务执行信息。
协调节点102,用于接收主节点发送的任务查询指令,查询注册临时顺序节点上的执行任务数据,确定执行节点103、104和105各自对应的任务执行信息,返回执行节点103、104和105各自对应的任务执行信息至主节点101。
主节点101,用于根据执行节点103、104和105各自对应的任务执行信息,确定执行节点103、104和105各自的目标优先级,根据执行节点103、104和105各自的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理。
执行节点103、104和105,用于根据主节点101分配的子任务进行数据处理。
协调节点102,用于在数据处理过程中,监测主节点101和执行节点103、104和105的运行状态,当主节点101出现宕机时,根据执行节点103、104和105的节点注册序号从执行节点103、104和105中选取出新的主节点。
本发明实施例提供的分布式任务协调系统根据各执行节点的任务执行信息对各执行节点进行排序得到节点队列,通过节点队列中各执行节点的优先级将数据任务中的子任务分配给各子任务对应的目标执行节点进行数据处理,如此,可以实现任务的灵活分配,合理配置节点资源,以减少处理器之间的负载不均衡的可能性。
如图2所示,图2是本发明实施例提供的分布式任务调度方法的流程示意图,所示的分布式任务调度方法应用在主节点,具体地,应用于主节点的分布式任务调度方法包括步骤201~204:
201,确定数据任务中待分配的子任务。
其中,数据任务可以是数据写入、数据读取、数据查询、数据推荐、消息广播等。
在本发明一些实施例中,为提高任务处理效率,可以将一个数据任务分解为多个可以并发处理的子任务,通过并行处理子任务,提高数据任务的处理效率,因此分布式任务调度系统在接收到数据任务的处理请求时,主节点响应处理请求,对处理请求中的数据任务进行任务分解,得到数据任务的至少一个子任务。
在本发明一些实施例中,可以根据数据任务物理拆分,将数据任务拆分为至少一个子任务。其中,物理拆分可以是物理存储层面,例如,当通过多个通道接收数据任务时,每个数据任务对应有一个发送通道,一个通道的批量发送的数据任务会被拆分为多个子任务进行并行发送,在物理存储层面一个通道对应着一个数据任务,每个子任务对应着一个数据任务的一个进程,所以可以根据通道对数据任务进行拆分,示例性的,如图3所示,图3是本发明实施例提供的数据任务分解的示意图,数据任务A在通过通道1发送时被拆分为三个子任务a1、a2、a3,并通过子通道1:1、1:2、1:3分别发送三个子任务a1、a2、a3,因此主节点在进行数据任务拆分时,可以根据数据任务A的发送通道将数据任务A拆分为三个子任务a1、a2、a3。
在本发明一些实施例中,在数据任务处理中,当分布式任务调度系统中新增执行节点或减少执行节点时,可以通过查询主节点和执行节点各自对应的执行任务数据,得到主节点和执行节点中未执行的子任务,将未执行的子任务设置为数据任务中待分配的子任务进行重新分配调度,进而可以改善由于分布式任务调度系统中执行节点增加或减少造成的负载不均衡的问题。
202,向协调节点发送任务查询指令,其中,任务查询指令用于指示协调节点反馈各执行节点的任务执行信息,任务执行信息包括所执行任务的数量。
在本发明一些实施例中,主节点向协调节点发送任务查询指令,协调节点通过查询各执行节点的临时顺序节点,得到各执行节点的执行任务数据,将执行任务数据中所执行任务的数量确定为任务执行信息,并将任务执行信息返回至主节点。
203,根据各执行节点的任务执行信息,确定各执行节点的目标优先级。
各执行节点的目标优先级用于指示各执行节点的任务分配的优先级,即目标优先级由于确定每个子任务对应执行节点,例如,对于每个子任务,可以根据各执行节点的目标优先级,将目标优先级最高的执行节点确定为该子任务对应的目标优先级。
在本发明一些实施例中,可以根据各执行节点的任务执行信息,按照预设的分配规则确定各执行节点的目标优先级。其中,预设的分配规则可以是任务执行信息中执行任务的数量越少,对应的目标优先级越高,示例性的,当以执行节点1、2、3各自对应的执行任务的数量分别为100、300和200时,执行节点1、2、3各自对应的目标优先级为:执行节点1>执行节点3>执行节点2,即在子任务分配时,优先将子任务分配至执行节点1。
204,根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理。
在本发明一些实施例中,对于每个子任务,可以根据各执行节点的目标优先级,优先级从大到小的顺序对各执行节点进行排序,得到节点队列,从节点队列重取出优先级最高的执行节点,将该优先级最高的执行节点设置为该子任务对于的目标执行节点,主节点将该子任务的任务信息写入该目标执行节点的临时顺序节点,以使该子任务对应的目标执行节点进行数据处理,并通过确定各执行节点的新目标优先级更新节点队列。
在本发明一些实施例中,为确保各执行节点的负载均衡,在数据任务分配之后,若出现任务下线,需要对已分配任务中除需要下线的任务之外的其余任务进行重新分配,从而保障了分布式任务调度系统中主节点和执行节点各自的负载均衡。具体地,当主节点接收到任务下线指令时,根据任务下线指令确定待下线的数据任务,通过访问各执行节点的临时顺序节点修改各执行节点的临时顺序节点中的所执行任务的处理进度,以下线分布式任务调度系统中当前处理的所有数据任务,并将按照步骤201~204对当前处理的所有数据任务中除待下线的数据任务外的数据任务进行重新分配。
在本发明一些实施例中,当主节点在进行数据任务的分配时,接收到待分配的新数据任务时,按照上述步骤201~204对新数据任务进行分配。
在本发明一些实施例中,在数据任务分配中,如果出现执行节点的新增或下线,造成分布式任务调度系统中执行节点的数量变化,为保障分布式任务调度系统中节点的负载均衡,需要对分布式任务调度系统中所有已分配任务按照当前的执行节点的数量进行重新分配。具体地,主节点可以通过监测协调节点中临时顺序节点的数量,确定是否新增执行节点或下线执行节点,若新增执行节点或下线执行节点,主节点则删除临时顺序节点下的任务信息,以使各执行节点停止处理各自对应的已分配的子任务,并发送处理任务查询请求至各执行节点,处理任务查询请求用于指示执行节点停止已分配的子任务时返回确认消息,在接收到所有执行节点返回的确认消息时,对数据任务按照上述步骤201~204进行重新分配。
本发明实施例提供的分布式任务调度方法根据各执行节点的任务执行信息对各执行节点进行排序得到节点队列,通过节点队列中各执行节点的优先级将数据任务中的子任务分配给各子任务对应的目标执行节点进行数据处理,如此,可以实现任务的灵活分配,合理配置节点资源,以减少处理器之间的负载不均衡的可能性。
在本发明一些实施例中,在数据任务分配中为了达到负载均衡,并且提高数据任务分配的效率,可以从多个数据节点中选取除主节点,并将数据节点中除主节点外的其余数据节点设置为执行节点,在接收到待分配的数据任务时,主节点执行上述步骤201~204进行数据任务中各子任务的分配。
在本发明一些实施例中,为了确保每个数据节点都有机会成为主节点,可以通过投票机制从数据节点中选举除主节点,具体地,任一数据节点发起主节点投票机制,发送主节点认证信息至其余数据节点,并接收其余数据节点返回的认证信息,当接收到认证信息数量大于或等于预设阈值时,该数据节点完成主节点认证,该数据节点确定为主节点,并将除该数据节点外的其余节点设置为执行节点。
在本发明一些实施例中,为了提高主节点选举的效率,可以增加协调节点,各数据节点在协调节点中注册临时顺序节点,协调节点根据各数据节点的临时顺序节点的注册时间分配各数据节点的注册序号,将注册序号最小的数据节点设置为主节点,并将出主节点外的其余数据节点设置为执行节点。通过注册序号实现主节点的快速选举,并当主节点宕机时,可以从执行节点中快速的选举出新的主节点,进而保证数据任务分配的正常运行。
在本发明一些实施例中,还可以预先设置主节点,将各数据节点中存在主节点标识的数据节点设置为主节点,将为存在主节点标识的数据节点设置为执行节点。
在本发明一些实施例中,在确定主节点之后,当接收到数据任务的处理请求时,主节点响应处理请求,根据处理请求确定待处理的数据任务,并按照步骤201中任务分解方式将数据任务分解为至少一个子任务,将子任务分配至执行节点进行处理。
在本发明一些实施例中,为了实现执行节点的负载均衡,在子任务分配时,可以根据各执行节点上的所执行任务的数量,按照步骤203确定各执行节点的目标优先级。
在本发明一些实施例中,考虑到可能存在所执行任务的数量相同的执行节点,因此,为更加精细化的确定各执行节点的目标优先级,可以根据存在所执行任务的数量相同的执行节点的负载信息确定存在所执行任务的数量相同的执行节点的目标优先级,其中,负载信息指的是执行节点中处于相同数据任务的所执行任务的数量。具体地,目标优先级的确定方法包括步骤a1~a3:
步骤a1,根据各执行节点的任务执行信息,确定各执行节点的初始优先级。
在本发明一些实施例中,可以将各执行节点的任务执行信息中所执行任务的数量进行比较,确定各执行节点的初始优先级。示例性的,可以将各执行节点的任务执行信息中所执行任务的数量进行比较,将所执行任务的数量最小的执行节点的初始优先级设置为最高优先级,将所执行任务的数量最大的执行节点的初始优先级设置为最低优先级。例如,当执行节点数量为4,且执行节点1、2、3、4各自对应的所执行任务的数量分别为200、3000、400、20时,将各执行节点的任务执行信息中所执行任务的数量进行比较,将执行节点4的初始优先级设置为最高优先级,将执行节点1的初始优先级设置为第二优先级,将执行节点3的初始优先级设置为第三优先级,将执行节点2的初始优先级设置为最低优先级。
在本发明一些实施例中,当执行节点数量比较多时,如果对所有执行节点都确定优先级,数据量较大,可能会增加任务调度的数据复杂度,进而增加任务调度的时长,因此可以将各执行节点的任务执行信息中所执行任务的数量于预存任务数量阈值进行比较,对于所执行任务的数量小于预存任务数量阈值的第一执行节点,按照上述初始优先级的确定方式确定第一执行节点的初始优先级,对于所执行任务的数量大于或等于预存任务数量阈值的第二执行节点,不进行优先级确定,即将数据任务中的子任务在所执行任务的数量小于预存任务数量阈值的第一执行节点中进行分配。
在本发明一些实施例中,在确定各执行节点的初始优先级后,根据各执行节点的初始优先级判断是否存在初始优先级相同的待排序执行节点;若不存在初始优先级相同的待排序执行节点,则将各执行节点的初始优先级确定为该执行节点的目标优先级;若存在初始优先级相同的待排序执行节点,则执行步骤a2~a3确定各执行节点的目标优先级。
步骤a2,若存在初始优先级相同的待排序执行节点,则获取待排序执行节点的负载信息,根据待排序执行节点的负载信息,对待排序执行节点的初始优先级进行调整,得到优先级调整后的待排序执行节点。其中,负载信息包括执行节点中处于相同数据任务的所执行任务的数量。
在本发明一些实施例中,若存在初始优先级相同的待排序执行节点,则发送负载查询指令至协调节点,该负载查询指令用于指示协调节点反馈各待排序执行节点的负载信息,根据各待排序执行节点之间的负载信息中的处于相同数据任务的所执行任务的数量,按照数量熊小到大的顺序调整待排序执行节点的初始优先级。例如,当执行节点数量为4,且执行节点1、2、3、4各自对应的所执行任务的数量分别为200、3000、400、200时,执行节点1和执行节点4的初始优先级相同,都是最高优先级,则获取执行节点1和执行节点4各自对应的负载信息,将执行节点1和执行节点4各自对应的负载信息中的处于相同数据任务的所执行任务的数量进行比较,根据比较结果对执行节点1和执行节点4各自对应的初始优先级进行调整,例如,当执行节点1和执行节点4各自对应的负载信息中的处于相同数据任务的所执行任务的数量分别为3和5时,则将执行节点1的初始优先级调整为最高优先级,将执行节点4的初始优先级调整为第二优先级。
步骤a3,根据优先级调整后的待排序执行节点,得到各执行节点的目标优先级。
在本发明一些实施例中,可以根据优先级调整后的待排序执行节点的调整优先级更新各执行节点中除的初始优先级,得到各执行节点的目标优先级。
在本发明一些实施例中,若存在初始优先级相同的待排序执行节点中,存在一个相同初始优先级,则按照步骤a2~a3得到各执行节点的目标优先级,例如,当执行节点数量为4,且执行节点1、2、3、4各自对应的所执行任务的数量分别为200、3000、400、200时,执行节点1、2、3、4各自对应的初始优先级分别为最高优先级、最低优先级、第三优先级、最该优先级,根据执行节点1和执行节点4各自对应的负载信息,将执行节点1的初始优先级调整为最高优先级,将执行节点4的初始优先级调整为第二优先级后,执行节点1和执行节点4各自对应的调整优先级分别为最高优先级和第二优先级,即执行节点1、2、3、4各自对应的目标优先级分别为最高优先级、最低优先级、第三优先级、第二优先级。
在本发明一些实施例中,若存在初始优先级相同的待排序执行节点中,存在多个相同初始优先级,则对每一个相同初始优先级的待排序执行节点按照步骤a2~a3得到每一个相同初始优先级的优先级调整后的待排序执行节点,并根据每一个相同初始优先级的优先级调整后的待排序执行节点的调整优先级,确定各执行节点的目标优先级。例如,当执行节点数量为4,且执行节点1、2、3、4各自对应的所执行任务的数量分别为200、3000、3000、200时,执行节点1、2、3、4各自对应的初始优先级分别为最高优先级、最低优先级、最低优先级、最低优先级,对于最低优先级对应的执行节点2和执行节点3,若执行节点2和执行节点3各自对应的负载信息中处于相同数据任务的所执行任务的数量分别为5和7,则将执行节点2的初始优先级调整为第三优先级,将执行节点3的初始优先级为最低优先级;对于最高优先级对应的执行节点1和执行节点4,根据执行节点1和执行节点4各自对应的负载信息,将执行节点1的初始优先级调整为最高优先级,将执行节点4的初始优先级调整为第二优先级后,则执行节点1、2、3、4各自对应的目标优先级分别为最高优先级、第三优先级、最低优先级、第二优先级。
在本发明一些实施例中,在确定各执行节点的目标优先级后,可以按照各自执行节点的目标优先级从大到小的顺序对各执行节点进行排序,得到节点队列,在分配子任务时,从节点队列中选取排在第一位的执行节点,将待分配的子任务分配至该执行节点,并将根据步骤a1ˉa3确定分配该子任务后的执行节点以及其余各执行节点的新的目标优先级,根据分配该子任务后的执行节点以及其余各执行节点的新的目标优先级更新节点队列,根据更新后的节点队列进行下一个子任务的分配,以此重复,直至数据任务中的所有子任务分配完成。
在本发明一些实施例中,在确定各执行节点的目标优先级后,对于当前待分配的子任务,可以按照各自执行节点的目标优先级,将最高优先级对于的执行节点设置为该子任务对应的目标执行节点,主节点将该子任务的任务信息写入该目标执行节点的临时顺序节点,以使该目标执行节点通过监听该目标执行节点的临时顺序节点下的数据获取被分配的子任务进行数据处理,并按照步骤s1~a3确定各执行节点的新目标优先级,根据各执行节点的新目标优先级进行下一个子任务的分配,直至数据任务中所有子任务都分配完成。具体地,子任务分配方法包括步骤b1~b3:
步骤b1,将第一子任务分配至目标优先级最大的执行节点,以进行数据处理。其中,第一子任务为各子任务中任意一个子任务。
步骤b2,根据各执行节点的当前任务执行信息,更新各执行节点的目标优先级,得到各所述执行节点的新目标优先级。
在本发明一些实施例中,可以根据各执行节点的当前任务执行信息,按照上述步骤a1~a3更新各执行节点的目标优先级,得到各所述执行节点的新目标优先级。
步骤b3,将第二子任务分配至新目标优先级最大的执行节点,以此重复,直至各所述子任务分配完成;所述第二子任务为各所述子任务中除所述第一子任务外的任意一个子任务。
示例性,以待分配的子任务包括子任务1、子任务2、执行节点包括执行节点1、执行节点2和执行节点3为例进行说明,当执行节点1的目标优先级为最高优先级,执行节点2的目标优先级为第二优先级,执行节点3为最低优先级时,从子任务1、子任务2选取子任务1,将子任务1分配至执行节点1进行数据处理,根据上述步骤a1~a3更新执行节点1、执行节点2和执行节点3的目标优先级,得到执行节点1、执行节点2和执行节点3各自对应的新目标优先级分别为第二优先级、最高优先级和最低优先级,将子任务2分配至执行节点2进行数据处理。
在本发明一些实施例中,对于各子任务,可以根据各子任务的任务信息、接收时间、传输通道对各子任务进行排序,根据各自执行节点的目标优先级,将排序后的各子任务分配到各自执行节点,具体地,排序后的子任务的分配方法包括:
(1)基于各子任务的任务参数,对各子任务进行排序,得到排序后的子任务。
其中,任务参数包括各子任务的任务信息、接收时间、通道序号等。
(2)将第一子任务分配至目标优先级最大的执行节点,以进行数据处理。其中,第一子任务为排序后的子任务中排在最前子任务。
(3)根据各执行节点的当前任务执行信息,更新各执行节点的目标优先级,得到各所述执行节点的新目标优先级。
(4)将第二子任务分配至新目标优先级最大的执行节点,以此重复,直至各所述子任务分配完成。其中第二子任务为排序后的子任务中除第二子任务外排在最前子任务。
示例性,以待分配的子任务包括子任务1、子任务2和子任务3、执行节点包括执行节点1、执行节点2和执行节点3为例进行说明,当子任务1、子任务2和子任务3的顺序为:子任务2、子任务1和子任务3,执行节点2的目标优先级为第二优先级,执行节点3为最低优先级时,将子任务2分配至执行节点1进行数据处理,根据上述步骤a1~a3更新执行节点1、执行节点2和执行节点3的目标优先级,得到执行节点1、执行节点2和执行节点3各自对应的新目标优先级分别为最高优先级、第二优先级和最低优先级,将子任务1分配至执行节点1进行数据处理,根据上述步骤a1~a3更新执行节点1、执行节点2和执行节点3的目标优先级,得到执行节点1、执行节点2和执行节点3各自对应的新目标优先级分别为第二优先级、最高优先级和最低优先级,将子任务3分配至执行节点2进行处理。
在本发明一些实施例中,在任务分配或数据处理中,协调节点检测各执行节点的心跳信息,根据各执行节点的心跳信息确定各执行节点的运行状态,当执行节点出现宕机或离线时,协调节点删除出现宕机或离线的执行节点的临时注册节点删除;当新增执行节点时,协调节点中新增临时注册节点,因此,主节点可以通过查询协调节点中的临时注册节点的数量,确定执行状态的执行节点的数量,根据执行状态的执行节点的数量确定执行状态的执行节点的数量发生变化,在执行状态的执行节点的数量发生变化时,即执行节点增加或减少时,对数据任务进行重新分配,从而保证执行节点的负载均衡,具体地,任务重分配的方法包括步骤c1~c3:
步骤c1,向协调节点发送节点查询指令,其中,节点查询指令用于指示协调节点反馈当前处于执行状态的执行节点的数量。
在本发明一些实施例中,主节点向协调节点发送节点查询指令,协调节点通过查询临时顺序节点的数量得到当前处于执行状态的执行节点的数量,并将当前处于执行状态的执行节点的数量返回至主节点。
在本发明一些实施例中,主节点每间隔预设时长向协调节点发送节点查询指令,获取协调节点反馈的当前处于执行状态的执行节点的数量,将当前处于执行状态的执行节点的数量与历史执行节点的数量进行比较;若当前处于执行状态的执行节点的数量与历史执行节点的数量一致,则确定数量未发生变化,即没有执行节点增加或减少;若当前处于执行状态的执行节点的数量与历史执行节点的数量不一致,则数量发生变化,即执行节点有增加或减少。其中,历史执行节点的数量可以是前一次协调节点反馈的处于执行状态的执行节点的数量;历史执行节点的数量也可以是主节点启动时查询到的处于执行状态的执行节点的数量。
在本发明一些实施例中,若数量未发生变化,则不进行任务重分配。
步骤c2,若数量发生变化,则向各执行节点发送任务停止指令,确定各执行节点的已分配的子任务的处理进度,任务停止指令用于指示执行节点停止处理已分配的子任务。
在本发明一些实施例中,若数量发生变化,则主节点将任务停止指令写入各执行节点各自对应的临时顺序节点中,以向各执行节点发送任务停止指令,各执行节点读取各自对应的临时顺序节点下的任务停止指令,停止处理已分配的子任务,并返回任务停止确认信息,主节点在接收到所有执行节点返回的停止确认信息后,查询各执行节点各自对应的临时顺序节点下所执行任务的执行任务数据,根据各执行节点各自对应的临时顺序节点下所执行任务的执行任务数据中的所执行任务的处理进度,确定各执行节点的已分配的子任务的处理进度。
步骤c3,根据各执行节点的已分配的子任务的处理进度,确定数据任务中未处理的子任务,将数据任务中未处理器的子任务设置为待分配的子任务。
在本发明一些实施例中,根据各执行节点的已分配的子任务的处理进度,统计每个执行节点中处理进度为未处理的已分配的子任务,确定数据任务中未处理的子任务,将数据任务中未处理器的子任务设置为待分配的子任务。
在本发明一些实施例中,在确定待分配的子任务后,按照上述步骤202~203将待分配的子任务重新分配至当前处于执行状态的执行节点进行数据处理。在本发明一些实施例中,考虑到任务重新分配可能造成任务处理不及时,可以当执行节点减少时,即执行节点下线时,将已下线执行节点的已分配的子任务分配至当前处于执行状态的执行节点,通过对部分任务重分配,不将当前处于执行状态的执行节点上的任务停止,提高任务处理的效率,具体地,部分任务重分配的方法包括步骤d1~d3:
步骤d1,向协调节点发送节点查询指令,其中,节点查询指令用于指示协调节点反馈当前处于执行状态的执行节点的数量。
在本发明一些实施例中,可以按照步骤c1向协调节点发送节点查询指令,确定当前处于执行状态的执行节点的数量以及数据是否发生增加或降低。
步骤d2,若数量降低,则向协调节点发送节点下线查询指令,其中,节点下线查询指令用于指示协调节点反馈已下线执行节点,以及已下线节点上已分配的子任务,将协调节点返回的已下线执行节点上已分配的子任务中未执行的子任务设置为数据任务中待分配的子任务。
在本发明一些实施例中,若数量降低,说明有执行节点下线,则向协调节点发送节点下线查询指令,接收协调节点基于节点下线指令返回的已下线节点上已分配的子任务,按照上述步骤202~204将已下线节点上已分配的子任务分配至当前处于执行状态的执行节点进行数据处理。
步骤d3,若数量增加,则向各执行节点发送任务停止指令,确定各执行节点的已分配的子任务的处理进度,任务停止指令用于指示执行节点停止处理已分配的子任务,根据各执行节点的已分配的子任务的处理进度,确定数据任务的中未处理的子任务,将数据任务中未处理器的子任务设置为待分配的子任务。
在本发明一些实施例中,若数量增加,则按照上述步骤c2~c3确定待分配的子任务,并按照上述步骤202~203将待分配的子任务重新分配至当前处于执行状态的执行节点进行数据处理。
在本发明一些实施例中,为了提高任务处理的效率,降低由于全部任务重分配对系统运行的影响,在当数量增加,即存在新增执行节点时,确定执行节点的数量以及所有执行节点中已分配的子任务的总数量,根据执行节点的数量、所有执行节点中已分配的子任务的总数量确定是否进行全部任务重分配;若进行全部任务重分配,则向各执行节点发送任务停止指令,确定各执行节点的已分配的子任务的处理进度,任务停止指令用于指示执行节点停止处理已分配的子任务,根据各执行节点的已分配的子任务的处理进度,确定数据任务的中未处理的子任务,将数据任务中未处理器的子任务设置为待分配的子任务,按照上述步骤202~203将待分配的子任务重新分配至当前处于执行状态的执行节点进行数据处理;若不进行全部任务重分配,则从已分配任务的执行节点上抽取未处理的子任务,将抽取的未处理的子任务设置为待分配的子任务,将待分配的子任务重新分配至新增的执行节点进行数据处理。
在本发明一些实施例中,根据执行节点的数量、所有执行节点中已分配的子任务的总数量确定是否进行全部任务重分配包括:将执行节点的数量与预设节点数量阈值进行比较,将所有执行节点中已分配的子任务的总数量与预设任务总数量阈值进行比较,若执行节点的数量大于或等于预设节点数量阈值,和/或执行节点中已分配的子任务的总数量大于或等于预设任务总数量阈值,说明执行全部任务重分配数据量大,耗时较长,则确定不进行全部任务重分配;若执行节点的数量小于预设节点数量阈值,且执行节点中已分配的子任务的总数量小于预设任务总数量阈值,则确定进行全部任务重分配。
在本发明一些实施例中,根据执行节点的数量、所有执行节点中已分配的子任务的总数量确定是否进行全部任务重分配包括:根据执行节点的数量、所有执行节点中已分配的子任务的总数量确定任务重分配系数,将任务重分配系数与预存的任务重分配系数阈值进行比较;若任务重分配系数大于或等于预存的任务重分配系数阈值,则确定不进行全部任务重分配;若任务重分配系数小于预存的任务重分配系数阈值,则确定进行全部任务重分配。在本发明一些实施例中,可以将执行节点的数量、所有执行节点中已分配的子任务的总数量之和确定为任务重分配系数;也可以根据执行节点的数量与所有执行节点中已分配的子任务的总数量确定每个执行节点上的平均任务数量,将平均任务数量设置为任务重分配系数;还可以根据执行节点的数量、所有执行节点中已分配的子任务的总数量、以及执行节点的数量与所有执行节点中已分配的子任务的总数量各自对应的预设权重进行加权运算,将加权之和确定为任务重分配系数。其中,任务重分配系数用于表征不进行全部任务重分配的概率。
在本发明一些实施例中,从已分配任务的执行节点上抽取未处理的子任务包括:根据新增的执行节点的性能参数确定新增的执行节点可执行的任务的目标数量,按照步骤a1~a3确定各已分配任务的执行节点的目标优先级,根据各已分配任务的执行节点的目标优先级、以及新增的执行节点可执行的任务的目标数量,确定各已分配任务的执行节点待抽取的任务数量,根据各已分配任务的执行节点待抽取的任务数量从各已分配任务的执行节点抽取相应数量的未处理任务。
在本发明一些实施例中,根据各已分配任务的执行节点的目标优先级、以及新增的执行节点可执行的任务的目标数量,确定各已分配任务的执行节点待抽取的任务数量包括:各已分配任务的执行节点的目标优先级查询预存的优先级和权重之间的关系数据,确定各已分配任务的执行节点的权重,各已分配任务的执行节点的权重和新增的执行节点可执行的任务的目标数量,确定各已分配任务的执行节点待抽取的任务数量。其中,各已分配任务的执行节点的权重表征各已分配任务的执行节点待抽取的任务数量在新增的执行节点可执行的任务的目标数量中的数量占比;预存的优先级和权重之间的关系数据包括多种优先级,以及每种优先级对应的权重。
在本发明一些实施例中,分布式任务调度方法中,主节点按照步骤202~204将待分配的子任务分配至执行节点和主节点中的目标执行节点进行数据处理。
在本发明一些实施例中,在主节点数据处理或任务分配中,主节点与协调节点之间的连接断开或主节点宕机,主节点将重新启动,若主节点重新启动成功,则主节点将作为新的执行节点,接收新的主节点分配的子任务进行数据处理;若主节点重新启动失败,则主节点下线,协调节点中删除主节点的临时顺序节点,并从协调节点中选取新的主节点。
本发明实施例提供的分布式任务调度方法根据各执行节点的任务执行信息对各执行节点进行排序得到节点队列,通过节点队列中各执行节点的优先级将数据任务中的子任务分配给各子任务对应的目标执行节点进行数据处理,如此,可以实现任务的灵活分配,合理配置节点资源,以减少处理器之间的负载不均衡的可能性。
为了更好说明本发明实施例提供的分布式任务调度方法,本发明实施例提供一种可应用于协调节点的分布式任务调度方法,该分布式任务调度方法包括:接收主节点发送的任务查询指令,根据任务查询指令查询各执行节点的执行任务数据,确定各执行节点的任务执行信息,向主节点反馈各执行节点的任务执行信息,以使主节点按照上述应用于主节点的分布式任务调度方法,根据各执行节点的任务执行信息,确定各执行节点的目标优先级,根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理。
在本发明一些实施例中,协调节点监测主节点和各执行节点的运行状态,当主节点出现宕机时,根据各执行节点的节点注册序号从各执行节点中选取出新的主节点,将向新的主节点反馈各执行节点的任务执行信息。
本发明实施例提供的分布式任务调度方法通过协调节点查询各执行节点的执行任务数据,并在主节点宕机时,根据各执行节点的注册序号从各执行节点中确定新的主节点,实现新的主节点的快速选举,降低由于主节点选举操作复杂造成的任务调度效率低的问题。
为了更好实施本发明实施例提供的分布式任务调度方法,本发明实施例在分布式任务调度方法基础上,提供一种分布式任务调度系统,如图1所示,分布式任务调度包括主节点、协调节点和至少一个执行节点,主节点、协调节点和至少一个执行节点执行上述分布式任务调度方法实现分布式任务调度。
本发明实施例还提供一种电子设备,如图4所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
确定数据任务中待分配的子任务;
向协调节点发送任务查询指令,任务查询指令用于指示协调节点反馈各执行节点的任务执行信息;任务执行信息包括所执行任务的数量;
根据各执行节点的任务执行信息,确定各执行节点的目标优先级;
根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理;
或者,接收主节点发送的任务查询指令,根据任务查询指令查询各执行节点的执行任务数据,确定各执行节点的任务执行信息,向主节点反馈各执行节点的任务执行信息,以使主节点根据各执行节点的任务执行信息,确定各执行节点的目标优先级,根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种分布式任务调度方法中的步骤。例如,该指令可以执行如下步骤:
确定数据任务中待分配的子任务;
向协调节点发送任务查询指令,任务查询指令用于指示协调节点反馈各执行节点的任务执行信息;任务执行信息包括所执行任务的数量;
根据各执行节点的任务执行信息,确定各执行节点的目标优先级;
根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理;
或者,该指令可以执行如下步骤:
接收主节点发送的任务查询指令,根据任务查询指令查询各执行节点的执行任务数据,确定各执行节点的任务执行信息,向主节点反馈各执行节点的任务执行信息,以使主节点根据各执行节点的任务执行信息,确定各执行节点的目标优先级,根据各执行节点的目标优先级,确定各子任务对应的目标执行节点,将各子任务分配至各子任务对应的目标执行节点进行数据处理。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种分布式任务调度方法中的步骤,因此,可以实现本发明实施例所提供的任一种分布式任务调度方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种分布式任务调度方法、系统、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种分布式任务调度方法,其特征在于,所述方法应用在主节点,所述方法包括:
确定数据任务中待分配的子任务;
向协调节点发送任务查询指令,所述任务查询指令用于指示所述协调节点反馈各执行节点的任务执行信息;
根据各所述执行节点的任务执行信息,确定各所述执行节点的目标优先级;
根据各所述执行节点的目标优先级,确定各所述子任务对应的目标执行节点,将各所述子任务分配至所述各所述子任务对应的目标执行节点进行数据处理。
2.如权利要求1所述的分布式任务调度方法,其特征在于,所述确定数据任务中待分配的子任务包括:
向所述协调节点发送节点查询指令,所述节点查询指令用于指示所述协调节点反馈当前处于执行状态的执行节点的数量;
若所述数量发生变化,则向各所述执行节点发送任务停止指令,所述任务停止指令用于指示所述执行节点停止处理已分配的子任务;
确定各所述执行节点的已分配的子任务的处理进度;
根据各所述执行节点的已分配的子任务的处理进度,确定数据任务中未处理的子任务,将所述数据任务中未处理器的子任务设置为待分配的子任务。
3.如权利要求1所述的分布式任务调度方法,其特征在于,所述确定数据任务中待分配的子任务包括:
向所述协调节点发送节点查询指令,所述节点查询指令用于指示所述协调节点反馈当前处于执行状态的执行节点的数量;
若所述数量降低,则向所述协调节点发送节点下线查询指令,将所述协调节点返回的已下线执行节点上已分配的子任务中未执行的子任务设置为数据任务中待分配的子任务;所述节点下线查询指令用于指示所述协调节点反馈已下线执行节点,以及所述已下线节点上已分配的子任务;
若所述数量增加,则向各所述执行节点发送任务停止指令,确定各所述执行节点已分配的子任务的处理进度,根据各所述执行节点的已分配的子任务的处理进度,确定数据任务的中未处理的子任务,将所述数据任务中未处理器的子任务设置为待分配的子任务;所述任务停止指令用于指示所述执行节点停止处理已分配的子任务。
4.如权利要求1所述的分布式任务调度方法,其特征在于,所述根据各所述执行节点的任务执行信息,确定各所述执行节点的目标优先级包括:
根据各所述执行节点的任务执行信息,确定各所述执行节点的初始优先级;
若存在所述初始优先级相同的待排序执行节点,则获取所述待排序执行节点的负载信息,根据所述待排序执行节点的负载信息,对所述待排序执行节点的初始优先级进行调整,得到优先级调整后的待排序执行节点;所述负载信息包括所述执行节点中处于相同数据任务的所执行任务的数量;
根据优先级调整后的待排序执行节点,得到各所述执行节点的目标优先级。
5.如权利要求1所述的分布式任务调度方法,其特征在于,所述各所述执行节点的目标优先级,确定各所述子任务对应的目标执行节点包括:
将第一子任务分配至目标优先级最大的执行节点,以进行数据处理;所示第一子任务为各所述子任务中任意一个子任务;
根据各所述执行节点的当前任务执行信息,更新各所述执行节点的目标优先级,得到各所述执行节点的新目标优先级;
将第二子任务分配至新目标优先级最大的执行节点,以此重复,直至各所述子任务分配完成;所述第二子任务为各所述子任务中除所述第一子任务外的任意一个子任务。
6.一种分布式任务调度方法,其特征在于,所述方法应用于协调节点,所述协调节点存储有执行节点的注册序号以及各所述执行节点的执行任务数据;所述方法包括:
接收主节点发送的任务查询指令,根据所述任务查询指令查询各所述执行节点的执行任务数据,确定各所述执行节点的任务执行信息,向所述主节点反馈各执行节点的任务执行信息,以使主节点根据各所述执行节点的任务执行信息,确定各所述执行节点的目标优先级,根据各所述执行节点的目标优先级,确定各所述子任务对应的目标执行节点,将各所述子任务分配至所述各所述子任务对应的目标执行节点进行数据处理。
7.如权利要求6所述的分布式任务调度方法,其特征在于,所述接收主节点发送的任务查询指令,根据所述任务查询指令查询各所述执行节点的执行任务数据,确定各所述执行节点的任务执行信息之后,所述方法包括:
监测所述主节点和各所述执行节点的运行状态;
当所述主节点出现宕机时,根据各所述执行节点的节点注册序号从各所述执行节点中选取出新的主节点,将向所述新的主节点反馈各执行节点的任务执行信息。
8.一种分布式任务调度系统,其特征在于,所述系统包括主节点、协调节点和至少一个协调节点;
所述主节点,用于确定数据任务中待分配的子任务,向协调节点发送任务查询指令,所述任务查询指令用于指示所述协调节点反馈各执行节点的任务执行信息;所述任务执行信息包括所执行任务的数量;
所述协调节点,用于接收所述主节点发送的任务查询指令,根据所述任务查询指令查询各所述执行节点的执行任务数据,确定各所述执行节点的任务执行信息,向所述主节点反馈各执行节点的任务执行信息;
所述主节点,用于根据各所述执行节点的任务执行信息,确定各所述执行节点的目标优先级,根据各所述执行节点的目标优先级,确定各所述子任务对应的目标执行节点,将各所述子任务分配至所述各所述子任务对应的目标执行节点进行数据处理;
所述执行节点,用于根据所述主节点分配的所述子任务进行数据处理。
9.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至5任一项所述方法中的操作,或者所述处理器用于运行所述存储器内的应用程序,以执行权利要求6至7任一项所述方法中的操作。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至5任一项所述方法中的步骤,或者以执行权利要求6至7任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211247126.XA CN115629854A (zh) | 2022-10-12 | 2022-10-12 | 分布式任务调度方法、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211247126.XA CN115629854A (zh) | 2022-10-12 | 2022-10-12 | 分布式任务调度方法、系统、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115629854A true CN115629854A (zh) | 2023-01-20 |
Family
ID=84905630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211247126.XA Pending CN115629854A (zh) | 2022-10-12 | 2022-10-12 | 分布式任务调度方法、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115629854A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112239A (zh) * | 2023-10-23 | 2023-11-24 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种异构推理后端上的可扩展负载均衡方法及系统 |
-
2022
- 2022-10-12 CN CN202211247126.XA patent/CN115629854A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112239A (zh) * | 2023-10-23 | 2023-11-24 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种异构推理后端上的可扩展负载均衡方法及系统 |
CN117112239B (zh) * | 2023-10-23 | 2024-02-09 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种异构推理后端上的可扩展负载均衡方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10733026B2 (en) | Automated workflow selection | |
US8468246B2 (en) | System and method for allocating resources in a distributed computing system | |
US7945913B2 (en) | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system | |
CN100527119C (zh) | 信息处理设备和信息处理方法 | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
CN110221920B (zh) | 部署方法、装置、存储介质及系统 | |
JPWO2007072544A1 (ja) | 情報処理装置、計算機、リソース割り当て方法及びリソース割り当てプログラム | |
CN106528288A (zh) | 一种资源管理方法、装置和系统 | |
US9384050B2 (en) | Scheduling method and scheduling system for multi-core processor system | |
CN115629854A (zh) | 分布式任务调度方法、系统、电子设备和存储介质 | |
CN111240824B (zh) | 一种cpu资源调度方法及电子设备 | |
CN112860442A (zh) | 资源配额调整方法、装置、计算机设备和存储介质 | |
CN117519953B (zh) | 一种面向服务器无感知计算的分离式内存管理方法 | |
CN111459651A (zh) | 一种负载均衡方法、装置、存储介质及调度系统 | |
CN117971498B (zh) | 计算集群中gpu资源的调度方法、电子设备和存储介质 | |
TWI821038B (zh) | 運算工作分派方法及應用其之終端電子裝置與運算系統 | |
KR20190061241A (ko) | 리소스 통합관리를 위한 메소스 처리 장치 및 방법 | |
JP3103129B2 (ja) | 負荷分散方式 | |
CN115314493A (zh) | 集群调度方法及装置 | |
JPH0822396A (ja) | タスク実行管理装置とその方法 | |
CN117527816A (zh) | 节点迁移方法、装置、电子设备及计算机可读存储介质 | |
CN117909061A (zh) | 基于gpu混合集群的模型任务处理系统和资源调度方法 | |
CN111711582A (zh) | 基于机房系统的传输机处理方法、系统和存储介质 | |
CN111711688A (zh) | 基于传输机的数据传输方法、装置、设备和存储介质 | |
CN111708624A (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 |