一种分布式集群中的FlinkSQL部署方法及装置制造方法及图纸

技术编号:36783180 阅读:41 留言:0更新日期:2023-03-08 22:21
本申请涉及大数据处理技术领域,特别是涉及一种分布式集群中的FlinkSQL部署方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中;将SQL任务文件通过网络文件挂载的方式推送至所述镜像容器中;读取所述SQL任务文件,运行所述镜像容器中存储的所述镜像软件包提交所述SQL任务文件。采用本方法能够避免每次SQL任务提交均需要进行打包镜像等处理,有助于提高SQL任务的提交效率。于提高SQL任务的提交效率。于提高SQL任务的提交效率。

【技术实现步骤摘要】
一种分布式集群中的FlinkSQL部署方法及装置


[0001]本申请涉及大数据处理
,特别是涉及一种分布式集群中的FlinkSQL部署方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,也是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。Flink作为主流的实时数据处理引擎,在实时大数据领域发挥着至关重要的作用。在基于Flink对实时数据处理之前,需要先对Flink进行安装,具体的安装是通过作业提交的方式来实现。
[0003]随着数据实时性的需求越来越多,而实时计算的SQL化越来越成熟,可以满足数据快速响应迭代的需求。在Kubernetes上运行Flink的目标是实现更灵活、更轻量级的流式应用程序部署,而无需管理基础设施。但是社区通常只提供了基础的Jar包在Kubernetes中运行,为了更好地利用FlinkSQL的优势,可以把FlinkSQL的实时计算任务部署到Kubernetes上。
[0004]目前,通常采用的在Kubernetes中部署FlinkSQL的方法为:将现有的SQL写入到Java代码中,打包成Jar包;构建一个docker镜像;最后通过命令使用刚刚打包好含有SQL任务的镜像部署到Kubernetes中。
[0005]然而,专利技术人发现目前的FlinkSQL部署方法在应用中存在如下的技术问题:
[0006]现有的FlinkSQL部署方法中每次进行SQl提交均需要进行打包和镜像构建的工作,导致任务提交部署的效率低下。

技术实现思路

[0007]基于此,有必要针对上述技术问题,提供一种能够避免每次SQL任务提交均需要进行打包镜像等处理,有助于提高SQL任务的提交效率的一种分布式集群中的FlinkSQL部署方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0008]第一方面,本申请提供了一种分布式集群中的FlinkSQL部署方法。所述方法包括:
[0009]将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中;
[0010]将SQL任务文件通过网络文件挂载的方式推送至所述镜像容器中;
[0011]读取所述SQL任务文件,运行所述镜像容器中存储的所述镜像软件包提交所述SQL任务文件。
[0012]在其中一个实施例中,所述SQL提交程序为通用提交程序,所述将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中包括:
[0013]获取所述SQL提交程序的执行参数,所述执行参数至少包括执行环境参数以及执行路径参数;
[0014]创建本地执行环境,由所述本地执行环境以及所述执行环境参数创建上下文执行环境,所述上下文执行环境用于为所述SQL提交程序提供通用执行环境。
[0015]在其中一个实施例中,所述将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中包括:
[0016]基于所述执行路径参数读取所述SQL提交程序的文件内容,返回SQL字符串;
[0017]将所述SQL字符串拆分为子字符串,每个所述子字符串与所述SQL提交程序中的执行指令一一对应。
[0018]在其中一个实施例中,所述将所述SQL字符串拆分为子字符串,每个所述子字符串与所述SQL提交程序中的执行指令一一对应之后,还包括:
[0019]确定与环境设置指令对应的设置子字符串,基于所述设置子字符串设置所述SQL提交程序的环境参数;
[0020]在所述上下文执行环境中执行所述子字符串中除所述设置子字符串以外的剩余子字符串。
[0021]在其中一个实施例中,所述将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中包括:
[0022]利用第一编译指令将所述SQL提交程序编译打包为所述镜像软件包,所述第一编译指令用于调用打包插件,所述打包插件至少包括清理插件、资源插件、编译插件以及测试插件。
[0023]在其中一个实施例中,所述将SQL任务文件通过网络文件挂载的方式推送至所述镜像容器中包括:
[0024]在容器编排引擎中构建多个所述镜像容器;
[0025]基于预设的负载均衡策略,在所述容器编排引擎中将所述SQL任务文件通过网络文件挂载的方式分发至所述镜像容器中。
[0026]第二方面,本申请还提供了一种分布式集群中的FlinkSQL部署装置,所述装置包括:
[0027]程序镜像模块,用于将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中;
[0028]任务推送模块,用于将SQL任务文件通过网络文件挂载的方式推送至所述镜像容器中;
[0029]任务提交模块,用于读取所述SQL任务文件,运行所述镜像容器中存储的所述镜像软件包提交所述SQL任务文件。
[0030]在其中一个实施例中,所述程序镜像模块包括:
[0031]执行参数模块,用于获取所述SQL提交程序的执行参数,所述执行参数至少包括执行环境参数以及执行路径参数;
[0032]环境创建模块,用于创建本地执行环境,由所述本地执行环境以及所述执行环境参数创建上下文执行环境,所述上下文执行环境用于为所述SQL提交程序提供通用执行环境。
[0033]在其中一个实施例中,所述程序镜像模块包括:
[0034]文件读取模块,用于基于所述执行路径参数读取所述SQL提交程序的文件内容,返
回SQL字符串;
[0035]字符拆分模块,用于将所述SQL字符串拆分为子字符串,每个所述子字符串与所述SQL提交程序中的执行指令一一对应。
[0036]在其中一个实施例中,所述字符拆分模块之后,还包括:
[0037]环境设置模块,用于确定与环境设置指令对应的设置子字符串,基于所述设置子字符串设置所述SQL提交程序的环境参数;
[0038]文件执行模块,用于在所述上下文执行环境中执行所述子字符串中除所述设置子字符串以外的剩余子字符串。
[0039]在其中一个实施例中,所述程序镜像模块包括:
[0040]程序编译模块,用于利用第一编译指令将所述SQL提交程序编译打包为所述镜像软件包,所述第一编译指令用于调用打包插件,所述打包插件至少包括清理插件、资源插件、编译插件以及测试插件。
[0041]在其中一个实施例中,所述任务推送模块包括:
[0042]多镜像容器模块,用于在容器编排引擎中构建多个所述镜像容器;
[0043]负载均衡模块,用于基于预设的负载均衡策略,在所述容器编排引擎中将所述SQL任务文件通过网络文件挂载的方式分发至所述镜像容器中。
[0044]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式集群中的FlinkSQL部署方法,其特征在于,所述方法包括:将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中;将SQL任务文件通过网络文件挂载的方式推送至所述镜像容器中;读取所述SQL任务文件,运行所述镜像容器中存储的所述镜像软件包提交所述SQL任务文件。2.根据权利要求1所述的方法,其特征在于,所述SQL提交程序为通用提交程序,所述将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中包括:获取所述SQL提交程序的执行参数,所述执行参数至少包括执行环境参数以及执行路径参数;创建本地执行环境,由所述本地执行环境以及所述执行环境参数创建上下文执行环境,所述上下文执行环境用于为所述SQL提交程序提供通用执行环境。3.根据权利要求2所述的方法,其特征在于,所述将SQL提交程序编译并打包为镜像软件包,将所述镜像软件包推送并存储在镜像容器中包括:基于所述执行路径参数读取所述SQL提交程序的文件内容,返回SQL字符串;将所述SQL字符串拆分为子字符串,每个所述子字符串与所述SQL提交程序中的执行指令一一对应。4.根据权利要求3所述的方法,其特征在于,所述将所述SQL字符串拆分为子字符串,每个所述子字符串与所述SQL提交程序中的执行指令一一对应之后,还包括:确定与环境设置指令对应的设置子字符串,基于所述设置子字符串设置所述SQL提交程序的环境参数;在所述上下文执行环境中执行所述子字符串中除所述设置子字符串以外的剩余子字符串。5.根据权利要求1所...

【专利技术属性】
技术研发人员:仲启尚李卫星
申请(专利权)人:企查查科技有限公司
类型:发明
国别省市:

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

1