CN107977260B - 任务提交方法及装置 - Google Patents

任务提交方法及装置 Download PDF

Info

Publication number
CN107977260B
CN107977260B CN201711184366.9A CN201711184366A CN107977260B CN 107977260 B CN107977260 B CN 107977260B CN 201711184366 A CN201711184366 A CN 201711184366A CN 107977260 B CN107977260 B CN 107977260B
Authority
CN
China
Prior art keywords
task
execution
address
submitting
identifier
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
Application number
CN201711184366.9A
Other languages
English (en)
Other versions
CN107977260A (zh
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.)
China Science and Technology (Beijing) Co., Ltd.
Original Assignee
Dingfu Intelligent Technology 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 Dingfu Intelligent Technology Co Ltd filed Critical Dingfu Intelligent Technology Co Ltd
Priority to CN201711184366.9A priority Critical patent/CN107977260B/zh
Publication of CN107977260A publication Critical patent/CN107977260A/zh
Application granted granted Critical
Publication of CN107977260B publication Critical patent/CN107977260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Abstract

本发明实施例提供了一种任务提交方法及装置。本发明实施例首先接收任务参数,之后根据任务参数确定编程语言和执行任务的环境参数,根据编程语言生成配置文件,并将配置文件存储到预定位置;最后根据预定位置、环境参数及执行任务代码包的地址生成任务提交体,并将任务提交体通过应用层面向对象的通信协议发送给资源调度器。本发明实施例能够生成保证任务正常执行的任务提交体,并利用应用层面向对象的通信协议提交该任务提交体,由于应用层面向对象的通信协议适用于任一种资源调度器,因此任务发送方不需要集成任务执行的环境也能将任务发送给资源调度器,从而解除了任务提交与任务执行环境的耦合,减小了完成任务的复杂程度。

Description

任务提交方法及装置
技术领域
本发明实施例涉及数据处理技术领域,并且更具体地,涉及一种任务提交方法及装置。
背景技术
目前,在大数据处理系统中,一般包括任务发送方和任务处理方,两者远程连接,使大数据处理不再受地域限制。任务发送方在提交任务给任务处理方时,需要遵循一定的规则,才能成功的将任务提交给任务处理方。这就需要在任务发送方集成与任务处理方相同或相应的环境,造成任务发送与对应执行环境的强耦合,增加了完成任务的复杂程度,造成不必要的资源浪费。下面具体以Apache Spark为例对当前大数据处理中任务发送存在的问题进行说明。
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,目前很多企业都在使用该计算引擎进行大规模的数据处理。利用Apache Spark进行数据处理首先需要向Apache Spark集群发送Spark任务,当前Spark任务发送包括两种方式,一种是通过脚本spark-submit提交,另一种是通过Apache Spark提供的api SparkLauncher进行提交。可见目前这两种Spark任务提交方式都需要在任务提交方集成Apache Spark。由于Spark任务是在Apache Spark集群执行,任务发送方并不需要执行任何的Spark逻辑,因此如果只是为了发送Spark任务,就在发送方集成Apache Spark,不仅会造成Spark任务提交与ApacheSpark的强耦合,使Spark任务对Apache Spark存在很强的依赖性,并且会增加完成Spark任务的复杂程度,造成不必要的资源浪费。
发明内容
本发明实施例提供一种任务提交方法及装置,其能够生成保证任务正常执行的任务提交体,并利用应用层面向对象的通信协议提交任务,由于应用层面向对象的通信协议适用于任何一种资源调度器,因此任务发送方不需要集成任务执行的环境也能将任务发送给资源调度器,从而使任务提交不再依赖任务执行环境,解除了任务提交与任务执行环境的耦合,减小了完成任务的复杂程度,节省了完成任务的需要使用的资源。
第一方面,提供了一种任务提交方法,所述方法包括如下步骤:
接收任务参数,其中所述任务参数包括执行任务代码包的地址和资源调度器类型;
根据所述执行任务代码包的地址确定执行任务的编程语言;
根据所述编程语言生成对应的配置文件,并将所述配置文件存储到预定位置;
根据所述编程语言和所述资源调度器类型确定执行任务的环境参数;
根据所述预定位置、所述环境参数以及所述执行任务代码包的地址生成任务提交体,并将所述任务提交体通过应用层面向对象的通信协议发送给所述资源调度器。
结合第一方面,在第一种可能的实现方式中,所述方法还包括以下步骤:
根据所述资源调度器类型确定与资源调度器通信的接口地址;利用所述接口地址向对应的资源调度器发送任务提交申请,以使所述资源调度器生成对应的任务标识符并为任务分配执行资源,其中执行资源包括执行任务需要的内存大小;
接收所述资源调度器发送的所述任务标识符和执行资源;
所述任务提交体根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符以及所述执行资源生成。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括以下步骤:
根据所述编程语言确定代码执行的主类;
所述任务提交体根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符、所述代码执行的主类以及所述执行资源生成。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述任务参数还包括任务名称、任务最大重复提交次数、任务类型、第一标识符和第二标识符;其中所述第一标识符用于标识是否对任务的执行进行托管,所述第二标识符用于标识是否保存任务执行过程中的执行结果;
所述任务提交体根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符、所述代码执行的主类、所述执行资源、任务名称、任务最大重复提交次数、任务类型、第一标识符以及第二标识符生成。
结合第一方面,在第四种可能的实现方式中,所述方法还包括如下步骤:
根据所述执行任务代码包的地址确定所述执行任务代码包的大小和时间戳;
所述任务提交体根据预定位置、所述环境参数、所述执行任务代码包的地址、所述执行任务代码包的大小以及所述执行任务代码包的时间戳生成。
结合第一方面,在第五种可能的实现方式中,所述方法还包括如下步骤:
确定所述配置文件的大小和时间戳;
所述任务提交体根据预定位置、所述环境参数、所述执行任务代码包的地址、所述配置文件的大小以及所述配置文件时间戳生成。
结合第一方面,在第六种可能的实现方式中,所述应用层面向对象的通信协议为超文本传输协议。
第二方面,提供了一种任务提交装置,所述装置包括:
第一参数接收模块,用于接收任务参数,其中所述任务参数包括执行任务代码包的地址和资源调度器类型;
软件确定模块,用于根据所述执行任务代码包的地址确定执行任务的编程语言;
配置文件处理模块,用于根据所述编程语言生成对应的配置文件,并将所述配置文件存储到预定位置;
环境参数确定模块,用于根据所述编程语言和所述资源调度器类型确定执行任务的环境参数;
任务提交模块,用于根据所述预定位置、所述环境参数以及所述执行任务代码包的地址生成任务提交体,并将所述任务提交体通过应用层面向对象的通信协议发送给所述资源调度器。
结合第二方面,在第一种可能的实现方式中,所述装置还包括:
申请提交模块,用于根据所述资源调度器类型确定与资源调度器通信的接口地址,并利用所述接口地址向对应的资源调度器发送任务提交申请,以使所述资源调度器生成对应的任务标识符并为任务分配执行资源,其中执行资源包括执行任务需要的内存大小;
第二参数接收模块,用于接收所述资源调度器发送的所述任务标识符和执行资源;
所述任务提交模块,还用于根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符以及所述执行资源生成所述任务提交体。
结合第二方面,在第二种可能的实现方式中,所述装置还包括:
主类确定模块,用于根据所述编程语言确定代码执行的主类;
所述任务提交模块,还用于根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符、所述代码执行的主类以及所述执行资源生成所述任务提交体。
在本发明实施例的上述技术方案中,首先接收任务参数,之后根据任务参数确定编程语言和执行任务的环境参数,根据编程语言生成配置文件,并将配置文件存储到预定位置;最后根据预定位置、环境参数以及执行任务代码包的地址生成任务提交体,并将任务提交体通过应用层面向对象的通信协议发送给资源调度器。上述技术方案能够生成保证任务正常执行的任务提交体,并利用应用层面向对象的通信协议提交该任务提交体,由于应用层面向对象的通信协议适用于任何一种资源调度器,因此任务发送方不需要集成任务执行的环境也能将任务发送给资源调度器,从而使任务提交不再依赖任务执行环境,解除了任务提交与任务执行环境的耦合,减小了完成任务的复杂程度,节省了完成任务的需要使用的资源。
附图说明
为了更清楚的说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性的示出了根据本发明一实施例的任务提交方法的流程图。
图2示意性的示出了根据本发明再一实施例的任务提交方法的流程图。
图3示意性的示出了根据本发明又一实施例的任务提交方法的流程图。
图4示意性的示出了根据本发明一实施例的任务提交装置的框图。
图5示意性的示出了根据本发明再一实施例的任务提交装置的框图。
图6示意性的示出了根据本发明又一实施例的任务提交装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种任务提交方法,如图1所示,该方法包括如下步骤:
110、接收任务参数,其中任务参数包括执行任务代码包的地址和资源调度器类型;
此步骤中,执行任务代码包包括执行任务的脚本,根据执行任务代码包的地址就可以找到执行任务的代码。任务处理方可能使用多种资源调度器,例如Apache spark集群就可以使用多种资源调度器:yarn,mesos,standalone,因此在任务参数中需要指明执行该任务所使用的资源调度器。
120、根据执行任务代码包的地址确定执行任务的编程语言;
此步骤中,根据执行任务代码包的地址可以查询到执行任务代码包,根据执行任务代码包的后缀就可以判断出执行当前任务需要使用的编程语言。
130、根据编程语言生成对应的配置文件,并将配置文件存储到预定位置;
同一个任务处理方可能同时支持多种编程语言,例如,Apache Spark,其本身的编写语言是scala,但是可以支持java,scala,python和R等编程语言编写的脚本或代码。使用每种编程语言去执行代码对应的操作都需要一些依赖文件或依赖库,因此需要根据不同的编程语言选择不同的配置生成类去生成配置文件。配置文件处于公共位置,包括一些基本参数,如任务执行所依赖的依赖文件或依赖库形成的压缩包(即依赖包)的公共路径及属性,给任务发送驱动分配的内存大小等等。以资源调度器yarn为例,配置文件中包括依赖包的地址,依赖包的大小,依赖包的时间戳以及依赖包的类型这四项属性。
以Apache Spark中任务的执行为例,对生成配置文件进行说明。具体地,将spark根目录下的jars文件夹里的所有jar包打成tar.gz包,配置文件记录tar.gz包的地址。由于java和scala都是基于JVM运行的,这两种语言编写的spark任务只需依赖jars文件夹下的jar包和任务代码jar包即可,因此配置文件中只需要记录这两种包的地址。而python和R语言编写的任务不仅要依赖以上的jar包,还要依赖各自的一些依赖文件或依赖库,所以需要提前在HDFS中约定一处位置(即预定位置)来保存jar的压缩包、python和R所依赖的依赖文件或依赖库的压缩包,即需要提前在HDFS中约定一处位置(即预定位置)来保存配置文件。
综合以上,本步骤中,根据任务参数可以获得该任务的编码语言,然后获取该编程语言执行任务所需的依赖包的相关信息,这里可以通过HDFS的相关操作api来获得依赖包的大小,时间戳等信息,然后按照Apache Spark等具体任务执行环境规定的格式拼接生成相应的配置文件并上传至HDFS中,将配置文件地址留存作为任务提交体中的参数项。
应当说明的是,上述依赖文件或依赖库打包后形成依赖包,配置文件中只需记录依赖包的地址即可。
140、根据编程语言和资源调度器类型确定执行任务的环境参数;
环境参数取决于使用哪种编程语言以及哪种资源调度器,因此,此步骤中根据编程语言和资源调度器类型确定执行任务的环境参数。环境参数是任务执行必需的一些数据,没有这些数据将无法完成任务的执行。
150、根据预定位置、环境参数以及执行任务代码包的地址生成任务提交体,并将任务提交体通过应用层面向对象的通信协议发送给资源调度器;
此步骤中,应用层面向对象的通信协议适用于任何一种资源调度器,因此任务发送方不需要集成任务执行的环境也能将任务发送给资源调度器。优选地,应用层面向对象的通信协议为超文本传输协议。
本实施例的任务提交方法能够生成保证任务正常执行的任务提交体,并利用应用层面向对象的通信协议提交该任务提交体,由于应用层面向对象的通信协议适用于任何一种资源调度器,因此任务发送方不需要集成任务执行的环境也能将任务发送给资源调度器,从而使任务提交不再依赖任务执行环境,解除了任务提交与任务执行环境的耦合,减小了完成任务的复杂程度,节省了完成任务的需要使用的资源。
应当说明的是本实施例以及下面实施例的任务提交方法均由任务发送方的任务发送处理器完成,任务参数由任务发送者提供。
在一个实施例中,如图2所示,任务提交方法还包括以下步骤:
210、根据资源调度器类型确定与资源调度器通信的接口地址;利用接口地址向对应的资源调度器发送任务提交申请,以使资源调度器生成对应的任务标识符并为任务分配执行资源,其中执行资源包括执行任务需要的内存;
不同的资源调度器的地址格式不同,此步骤根据任务参数中资源调度器的类别可以确定资源调度器的地址,在拼接上对应类型的资源调度器与任务发送处理器的接口地址即可获得任务发送处理器与资源调度器通信的接口地址URL,根据该URL即可实现任务发送处理器与资源调度器的通信。任务发送处理器根据该URL进行任务提交请求,资源调度器接收任务提交请求后判断是否存在一个能够与任务发送处理器通信的完整的地址,如果存在,则生成任务标识符,并为该任务分配执行资源。这里的执行资源包括但不限于是执行任务需要的内存,例如还可以包括虚拟内核数。
220、接收资源调度器发送的任务标识符和执行资源;
此步骤中,可以使用httpClient调用从返回的json体中获得申请到的任务标识符;
230、任务提交体根据预定位置、环境参数、执行任务代码包的地址、任务标识符以及执行资源生成。
上述步骤210和220可以放在上一实施例的步骤110之前,但是本发明对比并不进行限定。
本实施例在第一个实施例的基础上,在任务体提交体中增加了任务标识符和执行资源,从而在提交多个任务时,能够将各个任务以及对应的执行资源区分开来,保证了任务的顺利完成。
在一个实施例中,如图3所示,任务提交方法还包括以下步骤:
310、根据编程语言确定代码执行的主类;
任务的执行可能用到多种编程语言,根据任务执行环境以及编程语言的不同,可能需要指定代码执行的主类,例如Apache Spark,其编程语言是scala,但是其还同时支持java,scala,python和R编程语言,这是因为其在任务执行非JVM编程语言(例如python和R)时运用了对应的编程语言的代码执行主类。可见,要进一步地保证任务顺利的完成,需要在任务提交体中增加代码执行主类。
320、任务提交体根据预定位置、环境参数、执行任务代码包的地址、任务标识符、代码执行的主类以及执行资源生成。
在一个实施例中,任务参数还包括任务名称、任务最大重复提交次数、任务类型、第一标识符和第二标识符;其中第一标识符用于标识是否对任务的执行进行托管,用布尔值表示,第二标识符用于标识是否保存任务执行过程中的执行结果,用布尔值表示。
任务提交体根据预定位置、环境参数、执行任务代码包的地址、任务标识符、代码执行的主类、执行资源、任务名称、任务最大重复提交次数、任务类型、第一标识符以及第二标识符生成。
在一个实施例中,任务提交方法还包括如下步骤:
410、根据执行任务代码包的地址确定执行任务代码包的大小和时间戳;
420、任务提交体根据预定位置、环境参数、执行任务代码包的地址、执行任务代码包的大小以及执行任务代码包的时间戳生成。
本实施例将执行任务代码包的大小和时间戳增加到任务提交体中。
在一个实施例中,任务提交方法还可以包括如下步骤:
510、确定配置文件的大小和时间戳;
520、任务提交体根据预定位置、环境参数、执行任务代码包的地址、配置文件的大小以及配置文件时间戳生成。
本实施例将配置文件的大小和时间戳增加到任务提交体中。
综合以上实施例,可见,任务提交体中可以包括任务标识符、执行资源、任务名称、任务最大重复提交次数、任务类型(例如PIG,SPARK,MR)、第一标识符、第二标识符以及应用管理器容器描述;其中应用管理器容器描述包括任务相关资源信息、代码对应的主类命令、任务执行需要的环境参数。这里的任务相关资源信息包括上述执行任务代码包的地址、执行任务代码包的大小、执行任务代码包的时间戳、配置文件的地址(即预定位置)、配置文件的大小以及配置文件的时间戳。
具体到Apache Spark中的任务提交,为了解决编程语言,资源调度器存在的差异性问题,可以抽取出两个参数来标识出编程语言和资源调度器类型两个属性,然后通过面向接口的编程方式来规划出12种不同的提交体生成器(调度器:yarn,mesos,standalone;语言:java,python,scala,R;取所有资源调度器和语言的配对),然后通过httpClient将生成的json体提交到相应的资源调度器的web API来达到以HTTP方式提交spark任务的目的。
本发明实施例的任务提交方法是一种基于应用层面向对象的通信协议,例如http协议来进行任务提交的方式,该方式使任务发送方的任务发送代码不用依赖任何任务执行环境,通过传参的方式得到HDFS的资源定位和该任务所获得的执行资源,根据获得的参数判断资源调度器类型和编程语言,选取不同的任务发送处理器,并根据参数生成相应的任务执行所需的配置文件,并上传至HDFS上的预定位置,最后利用选取的任务发送处理器生成相应的任务提交体,调用不同的资源调度器的HTTP接口,来达到任务提交的目的。本发明实施例的任务提交方法在使用上与官方提供的API使用方式基本相同,但是没有依赖任务执行环境中的任何变量,与任务执行环境无耦合,可轻松集成进各种项目,并且提供了比官方API更丰富的查询功能。
对应于上述任务提交方法,本发明实施例还提供了一种任务提交装置,如图4所示,该装置包括:
第一参数接收模块,用于接收任务参数,其中任务参数包括执行任务代码包的地址和资源调度器类型;
软件确定模块,用于根据执行任务代码包的地址确定执行任务的编程语言;
配置文件处理模块,用于根据编程语言生成对应的配置文件,并将配置文件存储到预定位置;
环境参数确定模块,用于根据编程语言和资源调度器类型确定执行任务的环境参数;
任务提交模块,用于根据预定位置、环境参数以及执行任务代码包的地址生成任务提交体,并将任务提交体通过应用层面向对象的通信协议发送给资源调度器。
在一个实施例中,如图5所示,任务提交装置还包括:
申请提交模块,用于根据资源调度器类型确定与资源调度器通信的接口地址,并利用接口地址向对应的资源调度器发送任务提交申请,以使资源调度器生成对应的任务标识符并为任务分配执行资源,其中执行资源包括执行任务需要的内存大小;
第二参数接收模块,用于接收资源调度器发送的任务标识符和执行资源;
任务提交模块,还用于根据预定位置、环境参数、执行任务代码包的地址、任务标识符以及执行资源生成任务提交体。
在一个实施例中,如图6所示,任务提交装置还包括:
主类确定模块,用于根据编程语言确定代码执行的主类;
任务提交模块,还用于根据预定位置、环境参数、执行任务代码包的地址、任务标识符、代码执行的主类以及执行资源生成任务提交体。
应当说明的是,本发明实施例的任务装置是与本发明实施例的任务提交方法对应的装置,本发明实施例的任务方法中的每个步骤与本发明实施例的任务提交装置在任务提交时的步骤是一一对应的,因此,对于重复的部分,这里不再进行赘述。
应当说明的是本发明实施例的任务提交装置为任务发送方的任务发送处理器,但不限于是任务发送方的任务发送处理器,可以是任何具有数据处理功能的芯片。
应当说明的是,本发明实施例的任务提交方法和任务提交装置不仅可以用于Apache Spark任务的提交,还可以适用于任何需要任务提交的应用场景,可将本发明实施的任务提交方法和任务提交装置集成进各种需要任务提交的项目中,本发明对任务提交方法和任务提交装置的应用场景并不进行限定。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种任务提交方法,其特征在于,所述方法包括如下步骤:
接收任务参数,其中所述任务参数包括执行任务代码包的地址和资源调度器类型;
根据所述执行任务代码包的地址确定执行任务的编程语言;
根据所述编程语言生成对应的配置文件,并将所述配置文件存储到预定位置;
根据所述编程语言和所述资源调度器类型确定执行任务的环境参数;
根据所述预定位置、所述环境参数以及所述执行任务代码包的地址生成任务提交体,并将所述任务提交体通过应用层面向对象的通信协议发送给所述资源调度器;
所述方法还包括以下步骤:
根据所述资源调度器类型确定与资源调度器通信的接口地址;利用所述接口地址向对应的资源调度器发送任务提交申请,以使所述资源调度器生成对应的任务标识符并为任务分配执行资源,其中执行资源包括执行任务需要的内存;
接收所述资源调度器发送的所述任务标识符和执行资源;
所述任务提交体根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符以及所述执行资源生成。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括以下步骤:
根据所述编程语言确定代码执行的主类;
所述任务提交体根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符、所述代码执行的主类以及所述执行资源生成。
3.根据权利要求2所述的方法,其特征在于,所述任务参数还包括任务名称、任务最大重复提交次数、任务类型、第一标识符和第二标识符;其中所述第一标识符用于标识是否对任务的执行进行托管,所述第二标识符用于标识是否保存任务执行过程中的执行结果;
所述任务提交体根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符、所述代码执行的主类、所述执行资源、所述任务名称、所述任务最大重复提交次数、所述任务类型、所述第一标识符以及所述第二标识符生成。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括如下步骤:
根据所述执行任务代码包的地址确定所述执行任务代码包的大小和时间戳;
所述任务提交体根据预定位置、所述环境参数、所述执行任务代码包的地址、所述执行任务代码包的大小以及所述执行任务代码包的时间戳生成。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括如下步骤:
确定所述配置文件的大小和时间戳;
所述任务提交体根据预定位置、所述环境参数、所述执行任务代码包的地址、所述配置文件的大小以及所述配置文件时间戳生成。
6.根据权利要求1所述的方法,其特征在于,所述应用层面向对象的通信协议为超文本传输协议。
7.一种任务提交装置,其特征在于,所述装置包括:
第一参数接收模块,用于接收任务参数,其中所述任务参数包括执行任务代码包的地址和资源调度器类型;
软件确定模块,用于根据所述执行任务代码包的地址确定执行任务的编程语言;
配置文件处理模块,用于根据所述编程语言生成对应的配置文件,并将所述配置文件存储到预定位置;
环境参数确定模块,用于根据所述编程语言和所述资源调度器类型确定执行任务的环境参数;
任务提交模块,用于根据所述预定位置、所述环境参数以及所述执行任务代码包的地址生成任务提交体,并将所述任务提交体通过应用层面向对象的通信协议发送给所述资源调度器;
所述装置还包括:
申请提交模块,用于根据所述资源调度器类型确定与资源调度器通信的接口地址,并利用所述接口地址向对应的资源调度器发送任务提交申请,以使所述资源调度器生成对应的任务标识符并为任务分配执行资源,其中执行资源包括执行任务需要的内存大小;
第二参数接收模块,用于接收所述资源调度器发送的所述任务标识符和执行资源;
所述任务提交模块,还用于根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符以及所述执行资源生成所述任务提交体。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
主类确定模块,用于根据所述编程语言确定代码执行的主类;
所述任务提交模块,还用于根据所述预定位置、所述环境参数、所述执行任务代码包的地址、所述任务标识符、所述代码执行的主类以及所述执行资源生成所述任务提交体。
CN201711184366.9A 2017-11-23 2017-11-23 任务提交方法及装置 Active CN107977260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711184366.9A CN107977260B (zh) 2017-11-23 2017-11-23 任务提交方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711184366.9A CN107977260B (zh) 2017-11-23 2017-11-23 任务提交方法及装置

Publications (2)

Publication Number Publication Date
CN107977260A CN107977260A (zh) 2018-05-01
CN107977260B true CN107977260B (zh) 2020-08-28

Family

ID=62011271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711184366.9A Active CN107977260B (zh) 2017-11-23 2017-11-23 任务提交方法及装置

Country Status (1)

Country Link
CN (1) CN107977260B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540858B (zh) * 2019-09-23 2023-10-27 华为云计算技术有限公司 任务处理方法、服务器、客户端及系统
CN111158872B (zh) * 2019-12-16 2023-06-16 北京明朝万达科技股份有限公司 一种提交并守护spark任务的方法及装置
CN111625269A (zh) * 2020-05-14 2020-09-04 中电工业互联网有限公司 一种基于Web的通用Spark任务提交系统及方法
CN116048818B (zh) * 2023-03-30 2023-07-04 北京白海科技有限公司 一种资源分配方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1642105A (zh) * 2004-01-05 2005-07-20 华为技术有限公司 一种在网络系统中实现任务管理的方法
CN106251071A (zh) * 2016-07-27 2016-12-21 浙江大学滨海产业技术研究院 一种支持多种引擎的云工作流实现方法
CN106293971A (zh) * 2016-08-15 2017-01-04 张家林 一种分布式任务调度的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1642105A (zh) * 2004-01-05 2005-07-20 华为技术有限公司 一种在网络系统中实现任务管理的方法
CN106251071A (zh) * 2016-07-27 2016-12-21 浙江大学滨海产业技术研究院 一种支持多种引擎的云工作流实现方法
CN106293971A (zh) * 2016-08-15 2017-01-04 张家林 一种分布式任务调度的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
工控编程语言IEC_61131_3的现状和发展;彭瑜;《国内外机电一体化技术》;20041231(第1期);41-48 *

Also Published As

Publication number Publication date
CN107977260A (zh) 2018-05-01

Similar Documents

Publication Publication Date Title
CN107977260B (zh) 任务提交方法及装置
CN109933522B (zh) 一种自动化用例的测试方法、测试系统及存储介质
US7676816B2 (en) Systems and methods for integrating services
CN111176626B (zh) 跨编程语言的代码调用方法及装置、介质、设备
CN110058864B (zh) 微服务的部署方法及装置
CN106569880B (zh) 一种Android应用间动态共享资源的方法及系统
CN111930382B (zh) 应用页面的接入方法、装置及设备
US11321090B2 (en) Serializing and/or deserializing programs with serializable state
CN108804100B (zh) 创建界面元素的方法、装置、存储介质及移动终端
CN114205342A (zh) 服务调试的路由方法、电子设备、介质及程序产品
CN113687858A (zh) 配置文件的检查方法、装置、电子设备及存储介质
CN104536752A (zh) 自动生成apk的方法及装置
CN111752820B (zh) gRPC接口的压力测试方法、计算机设备和存储介质
CN110494849B (zh) 用于确定跨平台应用迁移的成功的系统和方法
CN109725887B (zh) 基于消息研发框架的数据交互方法、装置及终端设备
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
CN106775916B (zh) 减小应用安装包的方法、装置及电子设备
CN117041111A (zh) 车云功能测试方法、装置、电子设备及存储介质
CN112738181B (zh) 集群外部ip接入的方法、装置及服务器
CN111857736B (zh) 云计算产品的生成方法、装置、设备及存储介质
CN113076128B (zh) 用于机器人配置的方法、装置、电子设备及存储介质
CN114816668A (zh) 一种虚拟机内核监测方法、装置、设备及存储介质
CN114327383A (zh) 基于soa架构中间件的服务配置系统、方法及可读存储介质
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
CN107656741B (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
TA01 Transfer of patent application right

Effective date of registration: 20190905

Address after: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant after: China Science and Technology (Beijing) Co., Ltd.

Address before: Room 601, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant before: Beijing Shenzhou Taiyue Software Co., Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 230000 zone B, 19th floor, building A1, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Dingfu Intelligent Technology Co., Ltd

Address before: Room 630, 6th floor, Block A, Wanliu Xingui Building, 28 Wanquanzhuang Road, Haidian District, Beijing

Applicant before: DINFO (BEIJING) SCIENCE DEVELOPMENT Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant