CN115756586A - Flink作业的执行方法、装置、计算机设备和存储介质 - Google Patents

Flink作业的执行方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115756586A
CN115756586A CN202211490887.8A CN202211490887A CN115756586A CN 115756586 A CN115756586 A CN 115756586A CN 202211490887 A CN202211490887 A CN 202211490887A CN 115756586 A CN115756586 A CN 115756586A
Authority
CN
China
Prior art keywords
task
data
universal
executed
jar packet
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.)
Granted
Application number
CN202211490887.8A
Other languages
English (en)
Other versions
CN115756586B (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.)
Zhongdian Jinxin Software Co Ltd
Original Assignee
Zhongdian Jinxin Software 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 Zhongdian Jinxin Software Co Ltd filed Critical Zhongdian Jinxin Software Co Ltd
Priority to CN202211490887.8A priority Critical patent/CN115756586B/zh
Publication of CN115756586A publication Critical patent/CN115756586A/zh
Application granted granted Critical
Publication of CN115756586B publication Critical patent/CN115756586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种Flink作业的执行方法、装置、计算机设备和存储介质。所述方法包括:接收待执行任务的任务数据;将任务数据注入通用jar包,得到包括任务数据的通用jar包,其中,通用jar包用于封装Flink集群执行的任务的通用数据;通过与通用jar包集成的Flink集群,执行包括任务数据的通用jar包,以使得Flink集群执行待执行任务。采用本方法能够提高执行Flink作业的效率。

Description

Flink作业的执行方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种Flink作业的执行方法、装置、计算机设备和存储介质。
背景技术
在当前的市场环境下,需要进行实时计算的场景越来越多。Flink作为目前最为热门的流式处理引擎,在数据的实时处理领域应用极广。
目前每次需要在Flink上运行作业时,都需要经过构建作业环境、编写代码、作业打包、上传Flink集群,并启动Flink集群运行作业等一系列操作,流程过于漫长,导致Flink作业执行效率较低,无法满足实时发布并执行Flink作业的需求。
发明内容
基于此,有必要针对上述技术问题,提供一种Flink作业的执行方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种Flink作业的执行方法。所述方法包括:
接收待执行任务的任务数据;
将所述任务数据注入通用jar包,得到包括所述任务数据的所述通用jar包,其中,所述通用jar包用于封装Flink集群执行的任务的通用数据;
通过与所述通用jar包集成的所述Flink集群,执行包括所述任务数据的所述通用jar包,以使得所述Flink集群执行所述待执行任务。
在其中一个实施例中,所述接收待执行任务的任务数据之前,所述方法还包括:
根据所述通用数据,打包构建所述通用jar包;
通过预设接口将所述通用jar包与所述Flink集群进行集成,以使得所述Flink集群可以通过所述预设接口获取所述通用jar包,以执行所述通用jar包。
在其中一个实施例中,所述通过所述Flink集群执行所述通用jar包,包括:
调用Flink集群,读取所述通用jar包中的所述通用数据与所述任务数据;
根据所述任务数据解析所述通用数据,获取可执行任务数据;
通过所述Flink集群执行所述可执行任务数据。
在其中一个实施例中,所述通用数据中包括执行环境命令,所述任务数据中包括执行环境参数,所述执行环境参数包括批处理参数或者流处理参数,
所述根据所述任务数据解析所述通用数据,获取可执行任务数据,包括:
根据所述执行环境参数,从所述通用数据中确定所述执行环境参数对应的执行环境命令;
通过执行所述执行环境命令,构建执行所述可执行任务数据的执行环境对象。
在其中一个实施例中,所述通用数据中包括检查点设置命令,所述任务数据中包括检查点设置参数,所述根据所述任务数据解析所述通用数据,获取可执行任务数据,还包括:
根据所述检查点设置参数,执行所述检查点设置命令,以配置执行所述可执行任务数据时的检查点功能。
在其中一个实施例中,所述通用数据中包括注册自定义函数命令,所述方法还包括:
执行所述注册自定义函数命令,以在表环境中注册预先定义的自定义函数。
第二方面,本申请还提供了一种Flink作业的执行装置。所述装置包括:
接收模块,用于接收待执行任务的任务数据;
注入模块,用于将所述任务数据注入通用jar包,得到包括所述任务数据的所述通用jar包,其中,所述通用jar包用于封装Flink集群执行的任务的通用数据;
执行模块,用于通过与所述通用jar包集成的所述Flink集群,执行包括所述任务数据的所述通用jar包,以使得所述Flink集群执行所述待执行任务。
在其中一个实施例中,所述装置还包括:
打包模块,用于根据所述通用数据,打包构建所述通用jar包;
集成模块,用于通过预设接口将所述通用jar包与所述Flink集群进行集成,以使得所述Flink集群可以通过所述预设接口获取所述通用jar包,以执行所述通用jar包。
在其中一个实施例中,所述执行模块,还用于:
调用Flink集群,读取所述通用jar包中的所述通用数据与所述任务数据;
根据所述任务数据解析所述通用数据,获取可执行任务数据;
通过所述Flink集群执行所述可执行任务数据。
在其中一个实施例中,所述通用数据中包括执行环境命令,所述任务数据中包括执行环境参数,所述执行环境参数包括批处理参数或者流处理参数,
所述执行模块,还用于:
根据所述执行环境参数,从所述通用数据中确定所述执行环境参数对应的执行环境命令;
通过执行所述执行环境命令,构建执行所述可执行任务数据的执行环境对象。
在其中一个实施例中,所述通用数据中包括检查点设置命令,所述任务数据中包括检查点设置参数,所述执行模块,还用于:
根据所述检查点设置参数,执行所述检查点设置命令,以配置执行所述可执行任务数据时的检查点功能。
在其中一个实施例中,所述通用数据中包括注册自定义函数命令,所述装置还包括:
注册模块,用于执行所述注册自定义函数命令,以在表环境中注册预先定义的自定义函数。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以上任一项方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一项方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以上任一项方法。
上述Flink作业的执行方法、装置、计算机设备和存储介质,可以将待执行任务的任务数据注入通用jar包,且通用jar包中已封装有Flink集群执行任务所需的通用数据,因此通过执行通用jar包,便可基于任务数据和通用数据执行待执行任务。由于通用jar包为事先构建、打包并与Flink集群进行集成的jar包,在执行待执行任务时无需再对待执行任务进行打包并上传,直接将待执行任务注入至通用jar包中,Flink集群即可通过通用jar包对应的接口调用通用jar包执行待执行任务,因此能够简化Flink作业的执行流程,提高执行Flink作业的效率。
附图说明
图1为一个实施例中Flink作业的执行方法的流程示意图;
图2为一个实施例中步骤102的流程示意图;
图3为一个实施例中步骤106的流程示意图;
图4为一个实施例中步骤304的流程示意图;
图5为一个实施例中Flink作业的执行方法的流程示意图;
图6为一个实施例中管理Flink作业的流程示意图;
图7为一个实施例中Flink作业的执行装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种Flink作业的执行方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,接收待执行任务的任务数据。
本申请实施例中,待执行任务为需要在Flink集群上执行的任务,任务数据中包括执行待执行任务所需的代码,以及执行待执行任务所需的参数。示例性的,执行待执行任务所需的代码可以为基于SQL(Structured Query Language,结构化查询语言)编写的代码。编程人员可以在终端上编写执行待执行任务所需的代码,并指定执行待执行任务所需的参数。终端进而可以将待执行任务的任务数据发送至服务器,以使得服务器接收待执行任务的任务数据。
步骤104,将任务数据注入通用jar包,得到包括任务数据的通用jar包,其中,通用jar包用于封装Flink集群执行的任务的通用数据。
本申请实施例中,通用jar(Java Archive File,Java档案文件)包内封装有Flink集群执行任务所需的通用数据,也即不论通用jar包内注入的是何种任务数据,Flink集群均可以通过读取通用jar包内的通用数据和任务数据,执行待执行任务。示例性的,通用数据可以包括构建执行待执行任务所需的环境的数据、为待执行任务注册自定义函数的数据等等。
服务器可以在接收任务数据后,将任务数据注入通用jar包,作为文件存储于通用jar包中。以使得Flink集群在执行通用jar包时,可以通过读取任务数据对应的文件和通用数据,执行待执行任务。
步骤106,通过与通用jar包集成的Flink集群,执行包括任务数据的通用jar包,以使得Flink集群执行待执行任务。
本申请实施例中,可以通过Flink集群读取jar包内的内容,以使得Flink集群执行待执行任务。Flink集群预先与通用jar包进行集成,以使得Flink集群可以直接通过调用通用jar包对应的接口,执行通用jar包,而无需编程人员手动将包括任务数据的通用jar包上传至Flink集群中。Flink集群在执行通用jar包时,可以通过Flink客户端,基于任务数据和通用数据生成待执行任务的作业图,进而将作业图发送至Flink集群中的JobMaster。JobMaster进而可以将作业图转化为执行图,发送至TaskMaster,并由TaskMaster执行待执行任务。
需要说明的是,当通用jar包中存在多个待执行任务时,Flink集群在执行通用jar包时将分别根据各待执行任务和通用数据,生成各待执行任务对应的执行图。JobMaster也将分别根据各执行图,启动多个TaskMaster执行各待执行任务。例如,若通用jar包中存在待执行任务1,待执行任务2以及通用数据,Flink集群在执行通用jar包时,将根据待执行任务1的任务数据和通用数据,生成执行图1,并根据待执行任务2的任务数据和通用数据,生成执行图2,进而将执行图1和执行图2发送至相应的TaskMaster进行执行。
需要说明的是,若在将待执行任务注入通用jar包后,需要对待执行任务进行修改,则可以在终端上停止Flink任务后,删除通用jar包内对应待修改的待执行任务的文件,进而将修改后的待执行任务的文件传入通用jar包内,以使得Flink任务可以通过通用jar包,执行修改后的待执行任务。
本申请实施例提供的Flink作业的执行方法,可以将待执行任务的任务数据注入通用jar包,且通用jar包中已封装有Flink集群执行任务所需的通用数据,因此通过执行通用jar包,便可基于任务数据和通用数据执行待执行任务。由于通用jar包为事先构建、打包并与Flink集群进行集成的jar包,在执行待执行任务时无需再对待执行任务进行打包并上传,直接将待执行任务注入至通用jar包中,Flink集群即可通过通用jar包对应的接口调用通用jar包执行待执行任务,因此能够简化Flink作业的执行流程,提高执行Flink作业的效率。
在一个实施例中,如图2所示,步骤102中,接收待执行任务的任务数据之前,上述方法还包括:
步骤202,根据通用数据,打包构建通用jar包。
步骤204,通过预设接口将通用jar包与Flink集群进行集成,以使得Flink集群可以通过预设接口获取通用jar包,以执行通用jar包。
本申请实施例中,由于在接收到待执行任务的任务数据之后,需要将待执行任务数据注入通用jar包中,因此可以预先构建包括通用数据的通用jar包,并将通用jar包与Flink集群通过预设接口进行集成。示例性的,可以将Flink集群与Flink集群集成后的通用jar包封装为命令调用函数,以使得服务器可以通过调用命令调用函数,调用Flink集群,进而使Flink集群通过通用jar包对应的预设接口读取通用jar包内的内容,以根据通用jar包内的通用数据和任务数据执行待执行任务。
本申请实施例提供的Flink作业的执行方法,可以根据通用数据构建通用jar包,并将通用jar包通过预设接口与Flink集群进行集成,以使得Flink集群通过预设接口,即可读取通用jar包内的内容,故而无需在每次向通用jar包内提交待执行任务时重新向Flink集群上传通用jar包,能够进一步提升执行Flink作业的效率。
在一个实施例中,如图3所示,步骤106中,通过Flink集群执行通用jar包,包括:
步骤302,调用Flink集群,读取通用jar包中的通用数据与任务数据。
步骤304,根据任务数据解析通用数据,获取可执行任务数据。
步骤306,通过Flink集群执行可执行任务数据。
本申请实施例中,可以通过注入通用jar包中的任务数据解析通用jar包内的通用数据,以获取可执行任务数据。示例性的,可以根据任务数据判断需要调用通用数据内的哪一条预设命令,也可以根据传入的任务数据,确定执行通用数据内的命令时所需的参数,以得到可执行通用数据;将可执行通用数据与任务数据中的执行待执行任务所需的代码进行组装,并通过Flink集群对组装后的数据进行编译,得到Flink集群可执行的执行图后,即可得到可执行任务数据。JobMaster进而可以将可执行任务数据分配给TaskMaster执行。
在基于任务数据和通用数据生成可执行任务数据之前,还可以对任务数据进行语法解析,以判读任务数据的语法正确性。在任务数据的语法不正确的情况下,可以向终端返回错误信息,用于表征任务数据无法被执行。
本申请实施例提供的Flink作业的执行方法,可以根据任务数据解析通用数据,以生成Flink集群可以执行的可执行任务数据,并通过Flink集群执行可执行任务数据。由于Flink集群可以通过读取任务数据和通用数据,并根据任务数据解析通用数据得到可执行任务数据,因此在执行待执行任务时无需再对待执行任务进行打包并上传,直接将待执行任务注入至通用jar包中,Flink集群即可通过通用jar包执行待执行任务,因此能够简化Flink作业的执行流程,提高执行Flink作业的效率。
在一个实施例中,通用数据中包括执行环境命令,任务数据中包括执行环境参数,执行环境参数包括批处理参数或者流处理参数,如图4所示,步骤304中,根据任务数据解析通用数据,获取可执行任务数据,包括:
步骤402,根据执行环境参数,从通用数据中确定执行环境参数对应的执行环境命令。
步骤404,通过执行环境命令,构建执行可执行任务数据的执行环境对象。
本申请实施例中,通用数据中可以包括对应构建流处理执行环境对象的流处理命令,和对应构建批处理执行环境对象的批处理命令。执行环境参数用于指示在通过通用数据和任务数据生成可执行任务数据时,具体根据批处理命令生成可执行任务数据,还是根据流处理命令生成可执行任务数据。当执行环境参数为批处理参数时,可以使可执行任务数据中包括批处理命令,以使得Flink集群在生成可执行任务数据时,创建批处理执行环境对象;当执行环境参数为流处理参数时,可以使可执行任务数据中包括流处理命令,以使得Flink集群在生成可执行任务数据时,创建流处理执行环境对象。
示例性的,流处理命令可以包括:
创建执行环境的命令:
StreamExecutionEnvironment env=
StreamExecutionEnvironment.getExecutionEnvironment();
在执行待执行任务所需的代码为基于SQL编写的代码时,还可以包括创建流处理表环境的命令:
StreamTableEnvironment tableEnv=StreamTableEnvironment.create(env);
批处理命令可以包括:
创建执行环境的命令:
ExecutionEnvironment env=
ExecutionEnvironment.getExecutionEnvironment();
在执行待执行任务所需的代码为基于SQL编写的代码时,还可以包括创建批处理表环境的命令:
BatchTableEnvironment tableEnv=BatchTableEnvironment.create(env);
可以通过编程人员在终端的相关配置界面上做出的设置,确定执行环境参数为批处理参数还是流处理参数。
本申请实施例提供的Flink作业的执行方法,可以根据执行环境参数,确定需要使可执行任务数据中包括批处理命令还是流处理命令,以使得Flink集群在生成可执行任务数据时,可以相应构建待执行任务对应的批处理环境对象或者流处理环境对象。由于通用jar包的通用数据内已包括构建待执行任务的执行环境的执行环境命令,因此在编写待执行任务的代码时,无需再手动编写执行环境命令,因此可以简化编写待执行任务的代码的程序,进而提升执行Flink作业的效率。
在一个实施例中,通用数据中包括检查点设置命令,任务数据中包括检查点设置参数,步骤304中,根据任务数据解析通用数据,获取可执行任务数据,还包括:
根据检查点设置参数,执行检查点设置命令,以配置执行可执行任务数据时的检查点功能。
本申请实施例中,通用数据中可以包括设置Flink集群的检查点(Checkpoint)模式的相关命令,其中可以包括开启检查点功能命令,以及设置检查点间隔时间、超时时间、检查点异常时是否退出任务等的命令。相应的,检查点设置参数中也可以包括指示是否开启检查点功能的检查点功能参数,以及若开启检查点功能,其他的相关参数:如设置检查点间隔时间参数、超时时间参数、检查点异常退出参数等。
示例性的,检查点功能参数可以包括检查点开启参数或者检查点关闭参数。可以通过编程人员在终端的相关配置界面上做出的设置,确定检查点功能参数为检查点开启参数还是检查点关闭参数。由于Flink集群的检查点功能默认关闭,因此在检查点功能参数为检查点关闭参数时,可以使可执行任务数据中不包括开启检查点功能命令,以使得Flink集群在执行可执行任务数据时,不开启检查点功能。在检查点功能参数为检查点开启参数时,可以使可执行任务数据中包括开启检查点功能命令,以使得Flink集群在执行可执行任务数据时,开启检查点功能。示例性的,开启检查点功能命令可以为:
env.enableCheckpointing(检查点间隔时间参数);
当检查点功能参数为检查点开启参数时,还需要根据检查点间隔时间参数,确定开启检查点功能命令的检查点间隔时间参数。检查点间隔时间参数用于表征保存两个检查点之间的间隔时间。检查点间隔时间参数同样可以通过编程人员在终端的相关配置界面上做出的设置确定。
示例性的,检查点设置命令中还可以包括与配置检查点功能的高级设置相关的命令,例如超时时间命令、检查点异常退出命令;可以通过编程人员在终端的相关配置界面上做出的设置,确定是否需要配置检查点功能的高级设置。进一步地,在需要配置检查点功能的高级设置时,还可以通过编程人员在终端的相关配置界面上做出的设置,确定与高级设置相关的参数:例如,超时时间参数、检查点异常退出参数等。
示例性的,与配置检查点功能的高级设置相关的命令可以如下:
在需要配置检查点功能的高级设置时,应使得可执行任务数据中包括获取检查点配置命令:
CheckpointConfig checkpointConfig=env.getCheckpointConfig();
与配置检查点功能的高级设置相关的命令中,可以包括设置语义命令:
checkpointConfig.setCheckpointingMode(设置语义参数);
设置语义参数可以为精确一次参数或至少一次参数,精确一次参数可以为CheckpointingMode.EXACTLY_ONCE,用于指示Flink集群检查点一致性的保证级别为“精确一次”。至少一次参数可以为CheckpointingMode.AT_LEAST_ONCE,用于指示Flink集群检查点一致性的保证级别为“至少一次”。
与配置检查点功能的高级设置相关的命令中,还可以包括最小间隔时间命令:
checkpointConfig.setMinPauseBetweenCheckpoints(最小间隔时间参数);
最小间隔时间参数用于指示在保存两个检查点之间的最小间隔时间。
与配置检查点功能的高级设置相关的命令中,还可以包括最大并发检查点数量命令:
checkpointConfig.setMaxConcurrentCheckpoints(最大并发检查点数量参数);
最大并发检查点数量参数用于指示同时运行的检查点的最大数量。
与配置检查点功能的高级设置相关的命令中,还可以包括超时时间命令:
checkpointConfig.setCheckpointTimeout(超时时间参数);
超时时间参数用于指示检查点保存的超时时间,在检查点保存的时间超出该超时时间的情况下,检查点将被丢弃。
与配置检查点功能的高级设置相关的命令中,还可以包括外部持久化存储命令:
checkpointConfig.enableExternalizedCheckpoints(外部持久化存储参数);
外部持久化存储参数可以为删除参数或者保留参数。删除参数可以为ExternalizedCheckpointCleanup.DELETE_ON_CANCELLATION,用于指示在Flink作业取消时,删除在外部存储的检查点。保留参数可以为ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION,用于指示在Flink作业取消时,保留在外部存储的检查点。
与配置检查点功能的高级设置相关的命令中,还可以包括检查点异常退出命令:
env.getCheckpointConfig.setFailOnCheckpointingErrors(检查点异常退出参数);
检查点异常退出参数可以为不退出参数或者退出参数,不退出参数可以为false,用于指示在检查点发生异常时,丢弃检查点并继续运行Flink作业;退出参数可以为true,用于指示在检查点发生异常时,直接退出作业。
与配置检查点功能的高级设置相关的命令中,还可以包括不对齐检查点命令:
checkpointConfig.enableUnalignedCheckpoints();
不对齐检查点参数可以用于指示可执行任务数据中,是否应当包括不对齐检查点命令。在可执行任务数据中包括不对齐检查点命令时,Flink集群在执行可执行任务数据时,将不再执行检查点的分界线对齐操作。
本申请实施例提供的Flink作业的执行方法,可以根据检查点设置参数,构建检查点设置命令,以使得Flink集群在生成可执行任务数据时,可以相应配置可执行任务对应的检查点功能设置。由于通用jar包的通用数据内已包括配置待执行任务对应的检查点功能设置的检查点设置命令,因此在编写待执行任务的代码时,无需再手动编写检查点设置命令,因此可以简化编写待执行任务的代码的程序,进而提升执行Flink作业的效率。
在一个实施例中,通用数据中包括注册自定义函数命令,上述方法还包括:
执行注册自定义函数命令,以在表环境中注册预先定义的自定义函数。
本申请实施例中,在执行待执行任务所需的代码为基于SQL的代码时,由于在使用自定义函数时需要首先在表环境中注册自定义函数,因此通用数据中可以包括注册自定义函数命令,以在根据通用数据和任务数据生成可执行任务数据时,使得任务数据中调用自定义函数的语句可以被正常解析:
tableEnv.createTemporarySystemFunction("自定义函数名",自定义函数类的对象);
其中,自定义函数名和自定义函数类的对象均为预先指定的数值。需要在表环境中注册多少个自定义函数,通用数据中就应当包括多少个注册自定义函数命令。例如,若共需要注册3个自定义函数,则通用数据中,可以包括三个注册自定义函数命令:tableEnv.createTemporarySystemFunction("自定义函数名1",自定义函数类的对象1);tableEnv.createTemporarySystemFunction("自定义函数名2",自定义函数类的对象2);tableEnv.createTemporarySystemFunction("自定义函数名3",自定义函数类的对象3),以完成对三个自定义函数的注册。
需要说明的是,可以预先在通用数据中,加入全部待执行任务可能用到的自定义函数对应的注册自定义函数命令,以使得不论注入通用jar包中的是何种待执行任务,在执行待执行任务时,待执行任务中所需要用到的自定义函数均已经注册过,以减少编程人员需要在终端的相关配置界面上进行的相关设置。也可以接收编程人员在终端的相关配置界面上进行的设置,以确定需要注册的自定义函数,并根据需要注册的自定义函数对应的注册自定义函数命令生成可执行任务数据。
本申请实施例提供的Flink作业的执行方法,可以在生成可执行任务数据时执行注册自定义函数命令,以使得Flink集群在执行待执行任务时,可以调用预先定义的自定义函数。由于通用jar包的通用数据内已包括注册自定义函数的注册自定义函数命令,因此在编写待执行任务的代码时,无需再手动编写注册自定义函数命令,因此可以简化编写待执行任务的代码的程序,进而提升执行Flink作业的效率。
为使本领域技术人员更好的理解本申请实施例,以下通过具体示例对本申请实施例加以说明。
参照图5所示,示出了一种Flink作业的执行方法的流程图。
本申请实施例中,可以预先构建包括执行环境命令、检查点设置命令、注册自定义函数命令等通用数据的通用jar包,并将通用jar包与Flink集群通过预设接口进行集成。在编程人员于终端上编写待执行任务的相关代码,并设置待执行任务的相关参数后,终端可以将待执行任务的相关代码和待执行任务的相关参数作为待执行任务的任务数据,统一注入通用jar包中。
通用jar包中还可以包括与设置Flink集群的安全认证相关的安全认证命令。当Flink集群与外部数据平台对接时,数据平台可能会开启安全认证,因此Flink集群需要在和与其对接的数据平台进行安全认证后才能够正常调用数据平台中的数据。安全认证命令可以由本领域技术人员根据与Flink集群对接的具体数据平台进行设置。
Flink集群进而可以通过通用jar包的预设接口,读取通用jar包中的内容,并基于通用数据和任务数据生成可执行任务数据。在生成可执行任务数据时,Flink集群可以首先对通用jar包内的待执行任务的相关代码进行语法验证,并根据任务数据中的相关参数解析通用数据,以确定待执行任务对应的执行环境命令、检查点设置命令等。Flink集群进而可以通过待执行任务的相关代码和解析完毕的通用数据,对待执行任务的相关代码进行语句分解、作业注册等操作,形成Flink集群可以执行的多张执行图,并通过执行执行图,执行待执行任务。
参照图7所示,在执行待执行任务的过程中,编程人员和管理人员还可以在终端上对待执行任务进行管理,通过命令调用函数对Flink集群进行相关操作,以停止待执行任务、暂停待执行任务或启动待执行任务;在需要对待执行任务进行修改时,还可以通过终端删除通用jar包内的任务数据,并通过终端重新向通用jar包内注入修改后的任务数据,以完成对待执行任务的修改。
本申请实施例提供的Flink作业的执行方法,可以将待执行任务的任务数据注入通用jar包,且通用jar包中已封装有Flink集群执行任务所需的通用数据,因此通过执行通用jar包,便可基于任务数据和通用数据执行待执行任务。由于通用jar包为事先构建、打包并与Flink集群进行集成的jar包,在执行待执行任务时无需再对待执行任务进行打包并上传,直接将待执行任务注入至通用jar包中,Flink集群即可通过通用jar包对应的接口调用通用jar包执行待执行任务,因此能够简化Flink作业的执行流程,提高执行Flink作业的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的Flink作业的执行方法的Flink作业的执行装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个Flink作业的执行装置实施例中的具体限定可以参见上文中对于Flink作业的执行方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种Flink作业的执行装置700,包括:接收模块702、注入模块704、执行模块706,其中:
接收模块702,用于接收待执行任务的任务数据;
注入模块704,用于将所述任务数据注入通用jar包,得到包括所述任务数据的所述通用jar包,其中,所述通用jar包用于封装Flink集群执行的任务的通用数据;
执行模块706,用于通过与所述通用jar包集成的所述Flink集群,执行包括所述任务数据的所述通用jar包,以使得所述Flink集群执行所述待执行任务。
本申请实施例提供的Flink作业的执行装置,可以将待执行任务的任务数据注入通用jar包,且通用jar包中已封装有Flink集群执行任务所需的通用数据,因此通过执行通用jar包,便可基于任务数据和通用数据执行待执行任务。由于通用jar包为事先构建、打包并与Flink集群进行集成的jar包,在执行待执行任务时无需再对待执行任务进行打包并上传,直接将待执行任务注入至通用jar包中,Flink集群即可通过通用jar包对应的接口调用通用jar包执行待执行任务,因此能够简化Flink作业的执行流程,提高执行Flink作业的效率。
在其中一个实施例中,所述装置还包括:
打包模块,用于根据所述通用数据,打包构建所述通用jar包;
集成模块,用于通过预设接口将所述通用jar包与所述Flink集群进行集成,以使得所述Flink集群可以通过所述预设接口获取所述通用jar包,以执行所述通用jar包。
在其中一个实施例中,所述执行模块706,还用于:
调用Flink集群,读取所述通用jar包中的所述通用数据与所述任务数据;
根据所述任务数据解析所述通用数据,获取可执行任务数据;
通过所述Flink集群执行所述可执行任务数据。
在其中一个实施例中,所述通用数据中包括执行环境命令,所述任务数据中包括执行环境参数,所述执行环境参数包括批处理参数或者流处理参数,
所述执行模块706,还用于:
根据所述执行环境参数,从所述通用数据中确定所述执行环境参数对应的执行环境命令;
通过执行所述执行环境命令,构建执行所述可执行任务数据的执行环境对象。
在其中一个实施例中,所述通用数据中包括检查点设置命令,所述任务数据中包括检查点设置参数,所述执行模块706,还用于:
根据所述检查点设置参数,执行所述检查点设置命令,以配置执行所述可执行任务数据时的检查点功能。
在其中一个实施例中,所述通用数据中包括注册自定义函数命令,所述装置还包括:
注册模块,用于执行所述注册自定义函数命令,以在表环境中注册预先定义的自定义函数。
上述Flink作业的执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Flink作业的执行方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种Flink作业的执行方法,其特征在于,所述方法包括:
接收待执行任务的任务数据;
将所述任务数据注入通用jar包,得到包括所述任务数据的所述通用jar包,其中,所述通用jar包用于封装Flink集群执行的任务的通用数据;
通过与所述通用jar包集成的所述Flink集群,执行包括所述任务数据的所述通用jar包,以使得所述Flink集群执行所述待执行任务。
2.根据权利要求1所述的方法,其特征在于,所述接收待执行任务的任务数据之前,所述方法还包括:
根据所述通用数据,打包构建所述通用jar包;
通过预设接口将所述通用jar包与所述Flink集群进行集成,以使得所述Flink集群可以通过所述预设接口获取所述通用jar包,以执行所述通用jar包。
3.根据权利要求1所述的方法,其特征在于,所述通过所述Flink集群执行所述通用jar包,包括:
调用Flink集群,读取所述通用jar包中的所述通用数据与所述任务数据;
根据所述任务数据解析所述通用数据,获取可执行任务数据;
通过所述Flink集群执行所述可执行任务数据。
4.根据权利要求3所述的方法,其特征在于,所述通用数据中包括执行环境命令,所述任务数据中包括执行环境参数,所述执行环境参数包括批处理参数或者流处理参数,
所述根据所述任务数据解析所述通用数据,获取可执行任务数据,包括:
根据所述执行环境参数,从所述通用数据中确定所述执行环境参数对应的执行环境命令;
通过执行所述执行环境命令,构建执行所述可执行任务数据的执行环境对象。
5.根据权利要求4所述的方法,其特征在于,所述通用数据中包括检查点设置命令,所述任务数据中包括检查点设置参数,所述根据所述任务数据解析所述通用数据,获取可执行任务数据,还包括:
根据所述检查点设置参数,执行所述检查点设置命令,以配置执行所述可执行任务数据时的检查点功能。
6.根据权利要求4所述的方法,其特征在于,所述通用数据中包括注册自定义函数命令,所述方法还包括:
执行所述注册自定义函数命令,以在表环境中注册预先定义的自定义函数。
7.一种Flink作业的执行装置,其特征在于,所述装置包括:
接收模块,用于接收待执行任务的任务数据;
注入模块,用于将所述任务数据注入通用jar包,得到包括所述任务数据的所述通用jar包,其中,所述通用jar包用于封装Flink集群执行的任务的通用数据;
执行模块,用于通过与所述通用jar包集成的所述Flink集群,执行包括所述任务数据的所述通用jar包,以使得所述Flink集群执行所述待执行任务。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202211490887.8A 2022-11-25 2022-11-25 Flink作业的执行方法、装置、计算机设备和存储介质 Active CN115756586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211490887.8A CN115756586B (zh) 2022-11-25 2022-11-25 Flink作业的执行方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211490887.8A CN115756586B (zh) 2022-11-25 2022-11-25 Flink作业的执行方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN115756586A true CN115756586A (zh) 2023-03-07
CN115756586B CN115756586B (zh) 2024-01-19

Family

ID=85338052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211490887.8A Active CN115756586B (zh) 2022-11-25 2022-11-25 Flink作业的执行方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115756586B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737631A (zh) * 2019-09-10 2020-01-31 苏宁云计算有限公司 一种基于Flink引擎的数据解析方法及装置
CN111158891A (zh) * 2020-04-02 2020-05-15 武汉中科通达高新技术股份有限公司 基于Flink技术的分析任务处理方法、装置及存储介质
CN111666296A (zh) * 2020-04-28 2020-09-15 中国平安财产保险股份有限公司 基于Flink的SQL数据实时处理方法、装置、计算机设备和介质
CN112328458A (zh) * 2020-11-27 2021-02-05 杭州安恒信息技术股份有限公司 基于flink数据引擎的数据处理方法、装置
CN113760242A (zh) * 2021-03-09 2021-12-07 北京京东振世信息技术有限公司 一种数据处理方法、装置、服务器和介质
CN113918238A (zh) * 2021-09-27 2022-01-11 中盈优创资讯科技有限公司 一种基于Flink的异构数据源同步方法及装置
CN114416098A (zh) * 2022-01-18 2022-04-29 平安健康保险股份有限公司 实时任务开发方法、平台、电子设备及存储介质
CN114816583A (zh) * 2022-05-31 2022-07-29 以萨技术股份有限公司 基于Flink的数据自动化处理方法、装置和电子设备
US20220398254A1 (en) * 2020-12-25 2022-12-15 Boe Technology Group Co., Ltd. Data processing method, platform, computer-readable storage medium and electronic device
CN115756520A (zh) * 2022-11-26 2023-03-07 企查查科技有限公司 一种分布式集群中的FlinkSQL部署方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737631A (zh) * 2019-09-10 2020-01-31 苏宁云计算有限公司 一种基于Flink引擎的数据解析方法及装置
CN111158891A (zh) * 2020-04-02 2020-05-15 武汉中科通达高新技术股份有限公司 基于Flink技术的分析任务处理方法、装置及存储介质
CN111666296A (zh) * 2020-04-28 2020-09-15 中国平安财产保险股份有限公司 基于Flink的SQL数据实时处理方法、装置、计算机设备和介质
CN112328458A (zh) * 2020-11-27 2021-02-05 杭州安恒信息技术股份有限公司 基于flink数据引擎的数据处理方法、装置
US20220398254A1 (en) * 2020-12-25 2022-12-15 Boe Technology Group Co., Ltd. Data processing method, platform, computer-readable storage medium and electronic device
CN113760242A (zh) * 2021-03-09 2021-12-07 北京京东振世信息技术有限公司 一种数据处理方法、装置、服务器和介质
CN113918238A (zh) * 2021-09-27 2022-01-11 中盈优创资讯科技有限公司 一种基于Flink的异构数据源同步方法及装置
CN114416098A (zh) * 2022-01-18 2022-04-29 平安健康保险股份有限公司 实时任务开发方法、平台、电子设备及存储介质
CN114816583A (zh) * 2022-05-31 2022-07-29 以萨技术股份有限公司 基于Flink的数据自动化处理方法、装置和电子设备
CN115756520A (zh) * 2022-11-26 2023-03-07 企查查科技有限公司 一种分布式集群中的FlinkSQL部署方法及装置

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CHENXUYING: "1.11 flink中的动态加载udf jar包", pages 1 - 6, Retrieved from the Internet <URL:《https://zhuanlan.zhihu.com/p/278482766》> *
DAVAADORJ BATTULGA: "FogGuru: a Fog Computing platform based on Apache Flink", 《2020 23RD CONFERENCE ON INNOVATION IN CLOUDS, INTERNET AND NETWORKS AND WORKSHOPS (ICIN)》, pages 1 - 10 *
WEIXIN_43847900: "Flink 入门和环境创建以及各种参数含义(一)", pages 1 - 8, Retrieved from the Internet <URL:《https://blog.csdn.net/weixin_43847900/article/details/117292708》> *
XUTENGRUI: "Flink使用指南: Flink SQL自定义函数", pages 1 - 10, Retrieved from the Internet <URL:《https://blog.csdn.net/BlackArmand/article/details/118030860》> *
何贞贞: "基于Flink的任务调度策略", 《计算机工程与设计》, pages 1280 - 1287 *
佚名: "Flink源码剖析:Jar包任务提交流程", pages 1 - 5, Retrieved from the Internet <URL:《http://zhuanlan.zhihu.com./p/345536614》> *
曹云柯: "一种基于Flink实时数仓的系统设计及功能实现研究", 《电子技术与软件工程》, pages 219 - 222 *

Also Published As

Publication number Publication date
CN115756586B (zh) 2024-01-19

Similar Documents

Publication Publication Date Title
CN107273286B (zh) 针对任务应用的场景自动化测试平台及方法
US7506311B2 (en) Test tool for application programming interfaces
US9471345B2 (en) Runtime generation and injection of java annotations
US8832658B2 (en) Verification framework for business objects
JP2005293578A (ja) 属性を介して制御されるテストケース継承
CN108363566A (zh) 一种项目开发过程中文件配置方法、智能终端及存储介质
CN109002033B (zh) 基于uds的自动化标定系统及方法
US5848232A (en) Method of making secure collaboration between objects of an object-oriented program
US7340725B1 (en) Smart test attributes and test case scenario in object oriented programming environment
CN115080060A (zh) 应用程序发布方法、装置、设备、存储介质和程序产品
CN114138748A (zh) 数据库映射文件生成方法、装置、设备及存储介质
US10275236B2 (en) Generating related templated files
CN114531477A (zh) 功能组件的配置方法、装置、计算机设备和存储介质
US7577541B1 (en) Test services provider
CN110716943A (zh) 缺失数据补录方法、装置、计算机设备及存储介质
US20100250228A1 (en) Modeling a composite application
CN115756586A (zh) Flink作业的执行方法、装置、计算机设备和存储介质
CN111259042A (zh) 一种动态查询方法及系统
CN110852139B (zh) 生物特征识别方法、装置、设备以及存储介质
CN111625225A (zh) 一种程序指定数据输出方法和装置
CN112748905A (zh) 基础库的初始化调用方法、装置、电子设备及存储介质
CN112860354A (zh) 一种基于Laravel框架的状态机的建模方法及终端
Soni et al. Spring: Developing Java Applications for the Enterprise
US7861233B2 (en) Transparent context switching for software code
CN114036056B (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