CN113254177B - 基于集群的任务提交方法、计算机程序产品及电子设备 - Google Patents
基于集群的任务提交方法、计算机程序产品及电子设备 Download PDFInfo
- Publication number
- CN113254177B CN113254177B CN202110604816.5A CN202110604816A CN113254177B CN 113254177 B CN113254177 B CN 113254177B CN 202110604816 A CN202110604816 A CN 202110604816A CN 113254177 B CN113254177 B CN 113254177B
- Authority
- CN
- China
- Prior art keywords
- time
- task
- offset
- cluster
- commit
- 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.)
- Active
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/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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供基于集群的任务提交方法、计算机程序产品及电子设备,所述方法包括:获取任务的数据时间;获取所述任务预存的偏移时间,所述偏移时间至少根据所述任务的执行时长以及预设的期望完成时间确定;根据所述数据时间与所述偏移时间计算所述任务的提交时间;根据所述提交时间,向集群提交所述任务。通过编排任务提交逻辑,使得任务按照一定的时间顺序提交,可以确保任务在期望完成时间内完成,保证了任务执行的时效性。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及基于集群的任务提交方法、计算机程序产品及电子设备。
背景技术
集群调度系统是现代数据中心举足轻重的组件,其配置规模也在不断地扩大。集群调度系统的核心部分包括任务调度和资源调度,集群调度系统不但要为所提交的任务分配合适的资源,使得各任务在所分配的资源上执行,同时还要跟踪和监控任务的执行结果。集群调度系统需要尽可能提高资源使用率,减少任务的等待时间、运行延迟时间,使得各任务在所要求的时间前完成执行。然而,集群调度系统的计算资源是有限的,如何在有限的计算资源下使得尽可能多的任务能在期望时间内完成,是本领域长期以来亟需解决的技术问题。
发明内容
本申请提供了基于集群的任务提交方法、计算机程序产品及电子设备,可以在有限的计算资源下,使得尽可能多的任务在期望时间内完成。
根据本申请实施例的第一方面,提供一种基于集群的任务提交方法,所述任务拆分由至少一个应用运行,所述方法包括:
从用户输入的指令中提取执行任务的实例的数据时间,所述数据时间由用户设定,针对不同实例所设定的数据时间不同;获取任务的数据时间;
获取所述任务预存的偏移时间,所述偏移时间根据所述任务的执行时长以及预设的期望完成时间、所述任务的下游任务的提交时间中的至少一个确定;所述任务的执行时长根据所有应用的执行时长确定;
根据所述数据时间与所述偏移时间计算所述任务的提交时间;
根据所述提交时间,生成提交指令,并按照所述提交指令向集群提交所述任务。
根据本申请实施例的第二方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法。
根据本申请实施例的第三方面,提供一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
从用户输入的指令中提取执行任务的实例的数据时间,所述数据时间由用户设定,针对不同实例所设定的数据时间不同;所述任务拆分由至少一个应用运行;
获取所述任务预存的偏移时间,所述偏移时间根据所述任务的执行时长以及预设的期望完成时间、所述任务的下游任务的提交时间中的至少一个确定;所述任务的执行时长根据所有应用的执行时长确定;
根据所述数据时间与所述偏移时间计算所述任务的提交时间;
根据所述提交时间,生成提交指令,并按照所述提交指令向集群提交所述任务。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述第一方面所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供的基于集群的任务提交方法、计算机程序产品及电子设备及存储介质,通过任务的数据时间和偏移时间计算任务的提交时间,并且按照该提交时间向集群提交任务。通过编排任务提交逻辑,使得任务按照一定的时间顺序提交,可以确保任务在期望完成时间内完成,保证了任务执行的时效性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请根据一示例性实施例示出的一种基于集群的任务提交方法的流程图。
图2是本申请根据一示例性实施例示出的任务实行时长计算的示意图。
图3是本申请根据另一示例性实施例示出的一种基于集群的任务提交方法的流程图。
图4是本申请根据另一示例性实施例示出的任务的提交时间计算的示意图。
图5是本申请根据另一示例性实施例示出的一种基于集群的任务提交方法的流程图。
图6是本申请根据另一示例性实施例示出的一种基于集群的任务提交方法的流程图。
图7是本申请根据另一示例性实施例示出的一种基于集群的任务提交方法的流程图。
图8是本申请根据另一示例性实施例示出的一种基于集群的任务提交方法的流程图。
图9是本申请根据一示例性实施例示出的一种电子设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本申请实施例进行详细说明。
作业需要由一个或多个任务协调完成,当任务提交到集群调度系统后,集群根据集群中资源的使用情况,分配合适的资源来运行任务,且任务会被拆分为多个应用(application)来运行。集群还需要跟踪和监控任务的执行结果。集群调度系统的计算资源是有限的,当当前任务较多,且集群的算力有限时,如何确保各任务能在各自的期望完成时间内完成执行,依赖于提高集群资源的利用效率,合理分配资源,使得资源利用最大化。在相关技术中,大多只考虑了从充分利用资源的角度来加快任务处理效率,从而保证完成任务的时效性。但实际上,任务的时效性还依赖于任务执行的逻辑顺序,若任务能以合理的编排顺序提交到集群调度系统,那么在有限的计算资源下,将能进一步地保证任务时效性。在相关技术中,由于忽略了合理编排任务提交的重要性,大多数任务在提交时只关注集群当前的资源使用情况。只要集群还有剩余算力或剩余资源,则将任务提交到集群,并未对任务的提交进行合理的编排。对此,本申请为了解决在有限计算资源下保证各任务在期望时间内完成,提出了一种基于集群的任务提交方法,所述集群可以是YARN集群、Mesos集群等,所述方法包括如图1所示步骤:
步骤110:从用户输入的指令中提取执行任务的实例的数据时间,所述数据时间由用户设定,针对不同实例所设定的数据时间不同;
步骤120:获取所述任务预存的偏移时间,所述偏移时间至少根据所述任务的执行时长以及预设的期望完成时间、所述任务的下游任务的提交时间中的至少一个确定;所述任务的执行时长根据所有应用的执行时长确定;
步骤130:根据所述数据时间与所述偏移时间计算所述任务的提交时间;
步骤140:根据所述提交时间,生成提交指令,并按照所述提交指令向集群提交所述任务。
执行任务的实例的数据时间是一个人为定义的概念,可以由用户设定,并从用户输入的指令中提取,用于区分同一个任务的不同实例,因此针对不同实例所设定的数据时间不同。例如在数天中均要执行同一任务,为了区分该任务在不同的日期的实例,可以将每个日期所对应的实例用数据时间来区分。如同一任务在日期A的数据时间为A,在日期B的数据时间为B。
任务的提交时间可以根据数据时间与预存的偏移时间计算得出。在一些实施例中,偏移时间可以根据任务的执行时长以及预设的期望完成时间确定,而预设的期望时间可以由用户配置。在一个应用场景中,当用户期望某一任务在指定的时间前完成,可以输入任务的期望完成时间,其中,期望完成时间可以是一个时间段。例如,当用户期望数据时间为2021-05-05 00:00:00的任务A在2021-05-05 00:09:00点完成,则用户可以对该任务输入期望完成时间为9小时。
任务的执行时长可以根据任务的历史执行情况确定,若该任务为没有历史执行情况的新添加任务,则其执行时长可以设置为0。如上所述,一个任务可以拆分为多个application运行。在一些实施例中,可以预先规范任务提交时appName的命名格式,如规范为lh_${任务id}_${执行日期}_${实例id}。根据任务id,可以将application与任务对应起来。其后,可以通过集群的接口获取所有application的执行信息,例如,在YARN集群中,可以通过jmx接口获取所有application的执行信息。然后根据AppName的命名格式所携带的任务id信息,得知每一个任务分别对应于哪些application。最后,根据application的提交时间与完成时间,可以计算出任务的执行时长。例如,可以根据所有application中最晚完成的时间、最早提交的时间、以及中间没有application在运行的时间得出任务的执行时长。如图2所示,为计算一个任务执行时长的示意图。任务A可以分为Application1、Application2和Application3执行。其中Application1在01:00提交,01:25完成,Application2在01:15提交,01:45完成,Application3在01:55提交,02:05完成。可知在所有Application中,最晚完成时间为02:05,最早提交时间为01:00,其中在01:45-01:55的10分钟内没有application执行。由此可以计算出任务A的执行时长为1小时。
在相关技术中,任务提交时并不会去注意application的命名规范,以致无法将各application与任务对应起来。因此即便通过接口获取到所有application的执行信息,也无法从中区分出哪些application对应于哪些任务,从而无法获取到任务的执行时长。
如上所述,偏移时间可以根据任务的执行时长以及预设的期望完成时间确定。那么在上述例子中,根据用户输入的期望完成时间9小时,以及执行时长1小时,可确定偏移时间为8小时。根据任务A的数据时间2021-05-0500:00:00,以及偏移时间8小时,可以确定任务A的提交时间为2021-05-0500:08:00,并根据该提交时间向集群提交任务A。
值得注意的是,之所以要根据数据时间以及预存的偏移时间计算任务的提交时间,是因为同一任务的不同实例的数据时间是不一样的。因此需要用一个相对时间,即偏移时间来计算任务不同实例的提交时间。此外,当用户设置了任务A的执行周期,如每天9:00导出任务A的执行结果,那么通过存储任务A的偏移时间,用户就不需要在每个执行周期都重新输入任务A的期望完成时间,而是当到达执行周期时,直接按照任务的数据时间与预存的偏移时间计算出任务的提交时间。
在一些实施例中,偏移时间还可以根据任务的执行时长以及所述任务的下游任务的提交时间确定。如上所述,作业需要由一个或多个任务协调完成。下游任务需要在上游任务完成的基础上才能执行。因此上游任务的提交时间需要参考下游任务的提交时间,以确保下游任务在提交前上游任务已完成。此外,当作业包括多个任务时,用户可以只输入作业,或者说任务链中最后一个任务的期望完成时间。例如,某作业包括任务B以及导出任务,导出任务需要在任务B均完成的基础上才能执行,即导出任务为任务链中的最后一个任务,则用户可以只输入导出任务的期望完成时间。根据导出任务的期望完成时间和执行时长可以确定出导出任务的提交时间,具体过程如上文所述,在此不再赘述。导出任务为任务B的下游任务,任务B的偏移时间可以根据其执行时长以及导出任务的提交时间确定,任务B的执行时长获取过程如上文所述,在此不再赘述。具体地,可以根据导出任务的提交时间确定任务B的完成时间,然后根据任务B的完成时间与执行时长确定任务B的偏移时间。在到达执行周期时,系统可以根据任务B的数据时间,以及预存的偏移时间,确定出任务B的提交时间,并根据该提交时间向集群提交任务B。
在一些实施例中,偏移时间还可以根据任务的执行时长以及预设的期望完成时间和所述任务的下游任务的提交时间确定。偏移时间的确定过程包括如图3所示的步骤:
步骤310:根据所述下游任务的提交时间确定所述任务的完成时间;
步骤320:根据所述任务的完成时间与所述执行时长计算第一偏移时间;
步骤330:根据所述期望完成时间与所述执行时长计算第二偏移时间;
步骤340:确定所述第一偏移时间与所述第二偏移时间中的最小值为所述偏移时间。
当作业包括多个任务时,用户除了可以只配置任务链中最后一个任务的期望完成时间以外,还可以配置任务链中任意任务的期望完成时间。如图4所示为某作业的任务链为“A→B→导出任务”。其中,任务A的数据时间为2021-05-05 00:00:00,任务B的数据时间为2021-05-05 00:01:00,导出任务的数据时间为2021-05-05 00:02:00。而用户配置了导出任务的期望完成时间为8小时,同时配置了任务A的期望完成时间为8小时。即用户期望该作业在2021-05-05 00:10:00前完成,同时任务A在2021-05-05 00:08:00前完成。由于任务A的提交时间会影响到任务A以及下游的导出任务是否能在用户预期的时间前完成。因此任务A的偏移时间需要根据任务A的执行时长以及预设的期望完成时间和导出任务的提交时间确定。具体地,首先根据导出任务的期望完成时间以及执行时长,可以确定出导出任务的偏移时间为7h55min,并根据偏移时间和数据时间,确定出导出任务的提交时间为2021-05-0500:09:55。任务A、B以及导出任务的执行时长的获取方法如上文所述,不再赘述。然后,根据导出任务的提交时间,可以确定其上游的任务B的完成时间为2021-05-05 00:09:55,并根据任务B的完成时间、执行时长以及数据时间确定出任务B的偏移时间为6h55min,提交时间为2021-05-05 00:07:55。根据任务B的提交时间,可以确定其上游的任务A的完成时间为2021-05-0500:07:55,同理可以确定出任务A的第一偏移时间为6h55min。根据任务A的期望完成时间以及执行时长可以确定出第二偏移时间为7h。最后,确定出第一偏移时间与第二偏移时间中的最小值为任务A的偏移时间,即6h55min。
当某任务及其下游任务均配置了期望完成时间时,该任务需要同时考虑自身的期望完成时间以及下游任务的期望完成时间来确定提交时间,通过由两个不同期望完成时间确定出第一、第二偏移时间,并将第一、第二偏移时间中的最小值作为偏移时间,可以保证该任务在自身的期望完成时间前提交,同时不会影响到下游任务的执行。
在一些应用场景中,任务可以有优先级的区分,例如任务可以划分为普通任务、二级部门任务、一级部门任务以及公司级任务。此外,某任务可以有多个下游任务,这些下游任务还可以是不同优先级的下游任务。如此,在步骤310中,任务的完成时间可以包括不同优先级的完成时间;步骤320中,第一偏移时间可以包括不同优先级的第一偏移时间。步骤340中,确定第一偏移时间与第二偏移时间中的最小值为偏移时间,包括:将第二偏移时间分别与不同优先级的第一偏移时间对比,确定最小值为不同优先级的偏移时间。例如,任务A的下游任务包括任务B和任务C,其中任务B为普通级任务,任务C为一级部门任务。则可以根据如上文所述的方法,根据任务A自身的期望完成时间与执行时长确定出第二偏移时间;根据任务A的执行时长与任务B的提交时间确定出普通级的第一偏移时间,并将第二偏移时间与普通级的第一偏移时间中的最小值作为普通级的偏移时间。根据任务A的执行时长与任务C的提交时间确定出一级部门的第一偏移时间,并将第二偏移时间与一级部门的第一偏移时间中的最小值作为一级部门的偏移时间。如此,可以得到任务A不同优先级的偏移时间。
在一些实施例中,任务的提交时间还可以根据缓冲时间计算,其中不同优先级的偏移时间对应不同的缓冲时间,优先级高的偏移时间对应的缓冲时间,比优先级低的偏移时间对应的缓冲时间长。计算任务的提交时间包括如图5所示的步骤:
步骤510:根据所述数据时间、所述不同优先级的偏移时间、以及不同优先级的偏移时间对应的缓冲时间,确定不同优先级的提交时间;
步骤520:确定所述不同优先级的提交时间中的最小值为所述任务的提交时间。
缓冲时间是用于容错的冗余执行时间,因此优先级越高,对应的缓冲时间越长。如在上文所列举的例子中,任务A的完成对下游任务是否能在期望时间内完成具有重要的影响。根据上文计算可知任务A的偏移时间为6h55min,提交时间应当为2021-05-05 00:06:55。实际上,该提交时间只考虑了任务A及其下游任务的执行时长以及各任务的期望完成时间,当集群计算资源不足,导致任务无法提交,或集群负载过大,导致运行效率降低,这都会导致任务无法在期望完成时间内完成。因此,任务的提交时间可以加入用于容错的缓冲时间作为考虑因素。任务不同优先级的提交时间可以根据数据时间、不同优先级的偏移时间以及不同优先级的偏移时间对应的缓冲时间确定。例如公司级提交时间=数据时间+公司级偏移时间-公司级缓冲时间;一级部门提交时间=数据时间+一级部门偏移时间-一级部门缓冲时间;二级部门提交时间=数据时间+二级部门偏移时间-二级部门缓冲时间;普通级提交时间=数据时间+普通级偏移时间-普通级缓冲时间。在计算出不同优先级的提交时间后,确定各优先级提交时间中的最小值为任务的提交时间,即任务的提交时间=min(公司级提交时间,一级部门提交时间,二级部门提交时间,普通级提交时间)。
此外,在一些应用场景中,对于没有配置期望完成时间,以及其下游任务也未配置期望完成时间的任务,可以将其提交时间设置为无穷大。
本申请提供了一种基于集群的任务提交方法,通过任务的数据时间和偏移时间计算任务的提交时间,并且按照该提交时间向集群提交任务。通过编排任务提交逻辑,使得任务按照一定的时间顺序提交,可以确保任务在期望完成时间内完成,保证了任务执行的时效性。
上述实施例给出了向集群提交任务的编排逻辑,在确定任务的提交时间后,按照提交时间向集群提交任务。在一些实施例中,任务在提交到集群之前,还可以获取任务的算力耗费。任务的算力耗费可以通过任务的历史执行情况获得。如上所述,可以通过集群的接口,如YARN集群的jmx接口获取所有application的执行情况。其中,application的执行情况还包括application的算力耗费,包括cpu消耗和内存消耗。将任务所包括的application的算力耗费加起来便是该任务的算力耗费。在确定出任务的提交时间、执行时间、算力耗费后,可以将任务提交到调度引擎,并由调度引擎向集群提交任务。
在一些实施例中,任务提交到调度引擎后并非直接提交执行,而是提交到调度引擎内部的队列进行异步提交,所述根据提交时间,生成提交指令,并按照提交指令向集群提交任务,包括将任务提交到任务队列,该任务队列按照任务的执行时长以及算力耗费,从低到高依次向集群提交任务。例如,任务队列可以按照(A*执行时长+B*算力耗费)的排序从低到高依次向集群提交任务。其中,A,B为经验系数,可根据实际情况进行调整。依照上述排序,执行时长越短、算力耗费越小的任务越先提交。
在一些实施例中,调度引擎内部还可以包括超时队列,当达到预设周期时,将任务列队中已超过提交时间的超时任务提交到超时队列,超时队列按照超时任务的超时时长从高到低依次向集群提交超时任务。其中,预设周期可以是1秒钟,每隔1秒钟,就会启动一个线程访问任务队列,并从任务队列中取出已超过提交时间的超时任务提交到超时队列中。超时队列可以按照超时时长从高到低向集群提交超时任务,即超时时间越长的任务,排在超时队列中越靠前的位置。在调度引擎中,可以优先提交超时队列中的任务,在清空超时队列中的任务后,再开始提交任务队列中的任务。根据上述任务提交的编排逻辑,优先提交已超时的任务,在都提交完超时任务后再按照未超时任务的执行时长和耗费算力向集群提交任务,能够保证任务以合理的时序提交同时,又充分合理地提高资源利用率。
在一些应用场景中,任务提交时还需要考虑集群的负载情况,这是因为任务并非任何时候都能向集群提交,提交过多任务会影响到集群的稳定性。因此需要根据集群的负载状态进行任务提交,包括:获取集群的负载状态;当表征负载状态的参数小于预设阈值时,向集群提交所述任务。首先,需要通过集群的接口获取集群当前的负载状态。在YARN集群中,可以对ResourceManager节点发起http请求:String url="http://"+yarnNode,并可以设置禁止重定向。然后在返回的数据包的响应头中查找Key为location的值,若有getHeader则说明当前的yarnNode为active ResourceManager。在确定出activeResourceManager后,可以通过该活跃节点的jmx接口获取集群的负载状态信息。具体地,通过该接口,可以获取到集群尚缺内存大小pendingMB以及尚缺CPU大小pendingVCores。内存与CPU都可以反映出集群的负载情况,为了易于比较并更好地反应集群的负载状态,可以将内存与CPU映射为机器数,用机器数作为表征负载状态的参数。例如,集群每台机器的内存为X,CPU核数为Y,则尚缺机器数pendingMachines=max(pendingMB/X,pendingVCores/Y),即尚缺机器数为尚缺内存大小与每台机器内存的比值,和尚缺CPU大小与每台机器CPU核数的比值中的最大值。如此,便将内存与CPU映射为机器数来表征集群的负载状态。当表征负载状态的参数,即尚缺机器数小于预设阈值时,视为集群未超荷运行,可以向集群提交任务,否则视为集群超荷运行,不提交任务。
本申请提供了一种基于集群的任务提交方法,在通过任务的数据时间和偏移时间计算出任务的提交时间后,依照任务的执行时长与算力耗费向集群提交任务,同时当出现超时任务时,优先提交超时任务。在向集群提交任务时还考虑了集群的负载情况。通过合理的任务提交编排,既保证了任务在期望完成时间内完成,又提高了集群资源的合理利用。
此外,本申请还提供了一种基于集群的任务提交方法,包括如图6所示的确定不同优先级的偏移时间的步骤:
步骤610:根据任务的不同优先级的下游任务的提交时间确定所述任务的不同优先级的完成时间;
步骤620:根据所述不同优先级的完成时间与所述任务的执行时长计算不同优先级的第一偏移时间;所述任务的执行时长根据所有应用的执行时长确定;
步骤630:根据用户对所述任务配置的期望完成时间与所述执行时长计算第二偏移时间;
步骤640:将所述第二偏移时间分别与所述不同优先级的第一偏移时间对比,确定最小值为不同优先级的偏移时间;
步骤650:存储所述不同优先级的偏移时间。
在预存了任务的不同优先级的偏移时间后,任务的提交过程如图8所示,包括如图7所示的步骤:
步骤710:从用户输入的指令中提取执行任务的实例的数据时间,所述数据时间由用户设定,针对不同实例所设定的数据时间不同;
步骤720:获取所述任务预存的不同优先级的偏移时间;
步骤730:获取不同优先级的偏移时间对应的缓冲时间,其中,优先级高的偏移时间对应的缓冲时间比优先级低的偏移时间对应的缓冲时间长;
步骤740:根据所述数据时间、所述不同优先级的偏移时间以及不同优先级的偏移时间对应的缓冲时间,计算不同优先级的提交时间;
步骤750:确定所述不同优先级的提交时间中的最小值为所述任务的提交时间;
步骤760:将所述任务提交到任务队列,所述任务队列用于按照所述任务的执行时长以及算力耗费从低到高依次向所述集群提交所述任务;
步骤770:每隔1秒将所述任务列队中已超过提交时间的超时任务提交到超时队列,所述超时队列用于按照超时任务的超时时长从高到低依次向所述集群提交超时任务;
步骤780:获取所述集群的负载状态;
步骤790:当表征所述负载状态的参数小于预设阈值时,依次向所述集群提交所述超时队列与所述任务队列中的任务。
上述步骤的具体实现方式参见上文实施例,本申请在此不再赘述。
基于上述任意实施例所述的基于集群的任务提交方法,本申请还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的基于集群的任务提交方法。
基于上述任意实施例所述的基于集群的任务提交方法,本申请还提供了如图9所示的一种电子设备的结构示意图。如图9,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述任意实施例所述的基于集群的任务提交方法。
本申请还提供了一种计算机存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的基于集群的任务提交方法。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
Claims (8)
1.一种基于集群的任务提交方法,所述任务被拆分为由至少一个应用运行,其特征在于,所述方法包括:
从用户输入的指令中提取执行任务的实例的数据时间,所述数据时间由用户设定,针对不同实例所设定的数据时间不同;
获取所述任务预存的偏移时间,所述偏移时间基于以下方式确定:根据所述任务的下游任务的提交时间确定所述任务的完成时间;根据所述任务的完成时间与所述任务的执行时长计算第一偏移时间;根据所述任务的期望完成时间与所述执行时长计算第二偏移时间,将所述第一偏移时间与所述第二偏移时间中的最小值为所述偏移时间;
根据所述数据时间与所述偏移时间计算所述任务的提交时间;
根据所述提交时间,生成提交指令,并按照所述提交指令向集群提交所述任务。
2.根据权利要求1所述的方法,其特征在于,所述下游任务包括不同优先级的下游任务;所述完成时间包括不同优先级的完成时间;所述第一偏移时间包括不同优先级的第一偏移时间;所述确定所述第一偏移时间与所述第二偏移时间中的最小值为所述偏移时间,包括:
将所述第二偏移时间分别与所述不同优先级的第一偏移时间对比,确定最小值为不同优先级的偏移时间。
3.根据权利要求2所述的方法,其特征在于,所述提交时间还根据缓冲时间计算,优先级高的偏移时间对应的缓冲时间比优先级低的偏移时间对应的缓冲时间长;所述提交时间的计算步骤包括:
根据所述数据时间、所述不同优先级的偏移时间、以及不同优先级的偏移时间对应的缓冲时间,确定不同优先级的提交时间;
确定所述不同优先级的提交时间中的最小值为所述任务的提交时间。
4.根据权利要求1所述的方法,其特征在于,所述根据所述提交时间,生成提交指令,并按照所述提交指令向集群提交所述任务,包括:
将所述任务提交到任务队列,所述任务队列按照所述任务的执行时长以及算力耗费从低到高依次向所述集群提交所述任务。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当到达预设周期时,将所述任务列队中已超过所述提交时间的超时任务提交到超时队列,所述超时队列按照所述超时任务的超时时长从高到低依次向所述集群提交所述超时任务。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述集群的负载状态;
当表征所述负载状态的参数小于预设阈值时,向所述集群提交所述任务。
7.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
从用户输入的指令中提取执行任务的实例的数据时间,所述数据时间由用户设定,针对不同实例所设定的数据时间不同;所述任务被拆分为由至少一个应用运行;
获取所述任务预存的偏移时间,所述偏移时间基于以下方式确定:根据所述任务的下游任务的提交时间确定所述任务的完成时间;根据所述任务的完成时间与所述任务的执行时长计算第一偏移时间;根据所述任务的期望完成时间与所述执行时长计算第二偏移时间,将所述第一偏移时间与所述第二偏移时间中的最小值为所述偏移时间;
根据所述数据时间与所述偏移时间计算所述任务的提交时间;
根据所述提交时间,生成提交指令,并按照所述提交指令向集群提交所述任务。
8.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,该指令被处理器执行时实现权利要求1-6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604816.5A CN113254177B (zh) | 2021-05-31 | 2021-05-31 | 基于集群的任务提交方法、计算机程序产品及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604816.5A CN113254177B (zh) | 2021-05-31 | 2021-05-31 | 基于集群的任务提交方法、计算机程序产品及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254177A CN113254177A (zh) | 2021-08-13 |
CN113254177B true CN113254177B (zh) | 2023-06-27 |
Family
ID=77185628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110604816.5A Active CN113254177B (zh) | 2021-05-31 | 2021-05-31 | 基于集群的任务提交方法、计算机程序产品及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254177B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4805107A (en) * | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
CN103197955A (zh) * | 2011-12-16 | 2013-07-10 | 辉达公司 | 处理系统中动态生成的任务的信令、排序和执行 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107918556A (zh) * | 2016-10-11 | 2018-04-17 | 北京京东尚科信息技术有限公司 | 一种定时任务在多个服务器的并行执行方法和装置 |
CN108282415B (zh) * | 2017-12-29 | 2022-01-11 | 超聚变数字技术有限公司 | 一种调度方法及设备 |
CN111258745B (zh) * | 2018-11-30 | 2023-11-17 | 花瓣云科技有限公司 | 一种任务处理方法及设备 |
CN112130966A (zh) * | 2019-06-24 | 2020-12-25 | 北京京东尚科信息技术有限公司 | 任务调度方法和系统 |
CN111030835B (zh) * | 2019-10-23 | 2022-08-09 | 东南大学 | 一种ttfc网络的任务调度模型及消息调度表生成方法 |
CN112087503A (zh) * | 2020-08-29 | 2020-12-15 | 北京明略昭辉科技有限公司 | 集群任务调度方法、系统、计算机和计算机可读存储介质 |
-
2021
- 2021-05-31 CN CN202110604816.5A patent/CN113254177B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4805107A (en) * | 1987-04-15 | 1989-02-14 | Allied-Signal Inc. | Task scheduler for a fault tolerant multiple node processing system |
CN103197955A (zh) * | 2011-12-16 | 2013-07-10 | 辉达公司 | 处理系统中动态生成的任务的信令、排序和执行 |
Also Published As
Publication number | Publication date |
---|---|
CN113254177A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162865B (zh) | 服务器的调度方法、装置和服务器 | |
WO2020211579A1 (zh) | 一种基于分布式批量处理系统的处理方法、装置及系统 | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
WO2021159638A1 (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
CN111625331B (zh) | 任务调度方法、装置、平台、服务器及存储介质 | |
CN112114973B (zh) | 一种数据处理方法及装置 | |
CN110569252B (zh) | 一种数据处理系统及方法 | |
CN111026519B (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
CN112905339B (zh) | 任务调度执行方法、装置及系统 | |
US10606650B2 (en) | Methods and nodes for scheduling data processing | |
CN112130966A (zh) | 任务调度方法和系统 | |
Petrov et al. | Adaptive performance model for dynamic scaling Apache Spark Streaming | |
CN111930493A (zh) | 集群中NodeManager状态管理方法、装置及计算设备 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、系统及装置 | |
CN113391911B (zh) | 一种大数据资源动态调度方法、装置和设备 | |
CN113626173B (zh) | 调度方法、装置及存储介质 | |
Zikos et al. | The impact of service demand variability on resource allocation strategies in a grid system | |
CN113254177B (zh) | 基于集群的任务提交方法、计算机程序产品及电子设备 | |
CN117608840A (zh) | 一种智能监控系统资源综合管理的任务处理方法及系统 | |
CN109189581B (zh) | 一种作业调度方法和装置 | |
CN111767125A (zh) | 任务执行方法、装置、电子设备、存储介质 | |
CN113051063B (zh) | 分布式任务的任务调度方法、装置及电子设备 | |
CN109933426B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |