一种部署PyFlink任务的方法技术

技术编号:38136873 阅读:14 留言:0更新日期:2023-07-08 09:49
本申请公开了一种部署PyFlink任务的方法,涉及大数据计算技术领域,包括以下步骤:将前端上传的PyFlink任务的资源文件全部下载到后端,并获取Python相关信息;根据资源文件和Python相关信息构建PyFlink任务的PackagedProgram参数,并调用YarnClusterDescriptor的deployJobCluster方法将PyFlink任务的所有相关文件上传至HDFS中;启动Python进程,并根据PyFlink任务的逻辑生成JobGraph,通过YarnClusterDescriptor将JobGraph提交到yarn集群。本方法在提交PyFlink任务时直接复用已经上传好的资源和依赖,而无需提前在客户端安装Python环境和PyFlink任务的相关依赖,使得不同的Python环境都可以运行PyFlink任务。境都可以运行PyFlink任务。境都可以运行PyFlink任务。

【技术实现步骤摘要】
一种部署PyFlink任务的方法


本申请涉及大数据计算
,尤其涉及一种部署PyFlink任务的方法。

技术介绍

现有技术中,用Python写的Flink任务的提交主要依赖于命令行方式,而这种方式又要求用户在客户端提前安装好Python环境和PyFlink的相关依赖,同时Python的环境依赖每次都需要人工手动上传至服务器,无法复用,过程比较繁杂,且无法有效的管理PyFlink的Python程序文件、jar包依赖和Python依赖等资源。

技术实现思路

本申请提供的一种部署PyFlink任务的方法,旨在有效的管理PyFlink任务相关的Python程序文件、jar包依赖和Python依赖等资源。为实现上述目的,本申请采用以下技术方案:本申请的一种部署PyFlink任务的方法,包括以下步骤:将前端上传的PyFlink任务的资源文件全部下载到后端,并获取Python相关信息;根据所述资源文件和Python相关信息构建PyFlink任务的PackagedProgram参数,并调用YarnClusterDescriptor的deployJobCluster方法将PyFlink任务的所有相关文件上传至HDFS中;启动Python进程,并根据PyFlink任务的逻辑生成JobGraph,通过所述YarnClusterDescriptor将所述JobGraph提交到yarn集群。作为优选,所述将前端上传的PyFlink任务的资源文件全部下载到后端,包括:接收前端上传的PyFlink任务的资源文件,所述资源文件包含Python文件、PyFlink环境压缩包和第三方依赖jar包;根据资源类型将所述资源文件存储到不同的存储介质中,所述存储介质包含HDFS和SFTP,并将所述资源文件全部下载到后端。作为优选,在将前端上传的PyFlink任务的资源文件全部下载到后端之后,还包括:对所述资源文件中的PyFlink环境压缩包进行解压,并将解压后的目录路径封装到PyFlinkInfo中。作为优选,所述获取Python相关信息,包括:查找后端Flink Lib目录下的Flink

Python.jar包,将所述jar包路径设置到PyFlinkInfo中,并获取下载到后端的PyFlink环境的路径信息和运行在yarn集群上的PyFlink环境的路径信息以及HDFS和SFTP中存储的资源文件的路径信息。作为优选,所述PackagedProgram参数包含Python文件、Python入参、后端PyFlink环境的路径和yarm集群的PyFlink环境路径,所述Python入参归属于所述资源文件。作为优选,所述相关文件包含flink lib里面所有的包、PyFlink任务依赖的jar
包、日志配置文件、hdfs配置文件和yarn配置文件。作为优选,所述启动Python进程,并根据PyFlink任务的逻辑生成JobGraph,通过所述YarnClusterDescriptor将所述JobGraph提交到yarn集群,包括:调用Flink PythonDriver以启动Python进程,所述Python进程用于与Java JVM进程进行通信;根据所述PyFlink任务的逻辑和所述Java JVM进程生成JobGraph,通过所述YarnClusterDescriptor将所述JobGraph提交到yarn集群。作为优选,所述方法还包括:提交完所述PyFlink任务后,递归删除任务提交过程中下载的所有文件。一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种部署PyFlink任务的方法。一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种部署PyFlink任务的方法。本专利技术具有如下有益效果:相对于现有技术中基于Flink计算框架实现的Python生态集成方法,本申请不仅降低了使用Python生态的门槛,还使得用户可以在平台上直接编辑PyFlink任务,在提交PyFlink任务时直接复用已经上传好的资源和依赖,而无需提前在客户端安装Python环境和PyFlink任务的相关依赖,使得不同的python环境都可以运行PyFlink任务,并有效管理PyFlink任务的各种资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请一种部署PyFlink任务的方法流程图;图2是本申请前端提供的PyFlink任务资源示例图;图3是本申请前端用户配置相对路径的示例图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的权利要求书和说明书的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式,此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列
单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他单元。实施例如图1所示,一种部署PyFlink任务的方法,包括以下步骤:S110、将前端上传的PyFlink任务的资源文件全部下载到后端,并获取Python相关信息;S120、根据所述资源文件和Python相关信息构建PyFlink任务的PackagedProgram参数,并调用YarnClusterDescriptor的deployJobCluster方法将PyFlink任务的所有相关文件上传至HDFS中;S130、启动Python进程,并根据PyFlink任务的逻辑生成JobGraph,通过所述YarnClusterDescriptor将所述JobGraph提交到yarn集群。本实施例涉及到前端与后端的交互,其中前端可以简单理解为客户端,其主要作用是提供PyFlink任务的资源文件,并将其传给后端即服务器进行管理,涉及到的编程语言为HTML和JavaScript,如图2所示,其主要内容包括:
[0001]任务名称和任务类型任务名称是当前PyFlink任务的任务名,如flink1,方便后面任务运维对任务进行区分,在PyFlink任务中任务类型固定为PyFlink。
[0002]Python文件Python文件主要是当前PyFlink任务的逻辑,可以为Flink流式任务或者批任务,编写语言是Pyth本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种部署PyFlink任务的方法,其特征在于,包括以下步骤:将前端上传的PyFlink任务的资源文件全部下载到后端,并获取Python相关信息;根据所述资源文件和Python相关信息构建PyFlink任务的PackagedProgram参数,并调用YarnClusterDescriptor的deployJobCluster方法将PyFlink任务的所有相关文件上传至HDFS中;调用Flink PythonDriver以启动Python进程,所述Python进程用于与Java JVM进程进行通信;根据所述PyFlink任务的逻辑和所述Java JVM进程生成JobGraph,通过所述YarnClusterDescriptor将所述JobGraph提交到yarn集群。2.根据权利要求1所述的一种部署PyFlink任务的方法,其特征在于,所述将前端上传的PyFlink任务的资源文件全部下载到后端,包括:接收前端上传的PyFlink任务的资源文件,所述资源文件包含Python文件、PyFlink环境压缩包和第三方依赖jar包;根据资源类型将所述资源文件存储到不同的存储介质中,所述存储介质包含HDFS和SFTP,并将所述资源文件全部下载到后端。3.根据权利要求1所述的一种部署PyFlink任务的方法,其特征在于,在将前端上传的PyFlink任务的资源文件全部下载到后端之后,还包括:对所述资源文件中的PyFlink环境压缩包进行解压,并将解压后的目录路径封装到PyFlinkInfo中。4.根据权利要求2所述的一种部署PyFlink...

【专利技术属性】
技术研发人员:李志强陈吉平
申请(专利权)人:杭州玳数科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1