部署作业

更新时间: 2023-08-02 10:39:24

作业开发完成后,您需要将作业部署上线,才能启动并运行作业。本文为您介绍如何部署SQL作业、JAR作业和Python作业。

前提条件

  • 如果您需要部署Python作业,需要已完成Python包开发。Python包开发方式和使用限制等,详情请参见Python作业开发

  • 如果您需要部署JAR作业,需要已完成JAR包开发。JAR包开发方式、使用限制及注意事项等,请参见JAR作业开发

使用限制

仅实时计算引擎VVR 4.0.0及以上版本支持部署Python作业。

上传资源

作业部署前,需要您按照以下步骤将JAR包、Python作业文件或Python依赖上传到Flink全托管开发控制台。

说明

系统支持上传包的数量限制为200个,每个包大小限制为200 MB。如果JAR包超过200 MB,建议通过OSS上传,详情请参见操作指导

  1. 登录实时计算控制台

  2. Flink全托管页签,单击目标工作空间操作列下的控制台

  3. 在左侧导航栏,单击资源管理

  4. 单击上传资源,选择您要上传的JAR包、Python作业文件或Python依赖。

说明

如果您的作业是Python API类型,则需要上传PyFlink的官方JAR包。官方JAR的下载地址,请参见PyFlink V1.11PyFlink V1.12

操作步骤

  1. 登录实时计算控制台

  2. Flink全托管页签,单击目标工作空间操作列下的控制台。您可以根据需要部署的作业类型进行如下操作。

    部署SQL作业

    1. SQL开发页面,进行SQL作业开发,详情请参见SQL作业开发

    2. SQL作业开发完毕后,单击部署

    说明

    部署完成后,您需要在作业运维页面,启动该作业。启动步骤详情请参见作业启动

    部署JAR作业

    1. 作业运维页面,单击部署作业

    2. 填写配置信息如下。

      参数

      说明

      部署作业类型

      选择为JAR。

      部署模式

      请选择部署为流模式或批模式。

      部署名称

      填写对应的JAR作业名称。

      引擎版本

      引擎版本详情请参见引擎版本介绍生命周期策略。建议您使用推荐版本或稳定版本,版本标记含义详情如下:

      • 推荐版本:当前最新大版本下的最新小版本。

      • 稳定版本:还在产品服务期内的大版本下最新的小版本,已修复历史版本缺陷。

      • 普通版本:还在产品服务期内的其他小版本。

      • EOS版本:超过产品服务期限的版本。

      说明

      从VVR 3.0.3版本(对应Flink 1.12版本)开始,VVP支持同时运行多个不同引擎版本的JAR作业。如果您的作业已使用了Flink 1.12及更早版本的引擎,您需要按照以下情况进行处理:

      • Flink 1.12版本:停止后启动作业,系统将自动将引擎升级为vvr-3.0.3-flink-1.12版本。

      • Flink 1.11或Flink 1.10版本:手动将作业引擎版本升级到vvr-3.0.3-flink-1.12或vvr-4.0.8-flink-1.13版本后重启作业,否则会在启动作业时超时报错。

      JAR URI

      请选择一个文件或者手动上传新文件,您可以拖拽文件到此区域或者单击右侧上传图标选择文件上传。

      说明

      如果您的作业是Python API类型,则需要填写PyFlink的官方JAR包。官方JAR的下载地址请参见PyFlink V1.11PyFlink V1.12

      Entry Point Class

      程序的入口类。如果您的JAR包未指定主类,请在此处输入您的Entry Point Class类的标准路径。

      说明

      如果您的作业是Python API类型,Entrypoint class应该填写为org.apache.flink.client.python.PythonDriver。

      Entry Point Main Arguments

      您可以在此处传入参数,在主方法里面调用该参数。

      说明
      • 参数信息长度不要大于1024,且不建议用来传复杂参数,复杂参数指包括了换行、空格或者其他特殊字符的参数。如果您需要传入复杂参数,请使用附加依赖文件来传输。

      • 如果您的作业是Python API类型,需要首先上传您的Python作业文件。Python作业文件上传之后,默认会被上传到作业运行节点的/flink/usrlib/目录下。

        假如您的Python作业文件名为word_count.py,则Entrypoint main args需要填写为-py /flink/usrlib/word_count.py

        Python作业文件的路径需要填写为完整路径,/flink/usrlib/不能省略,且不能更改。

      附加依赖文件

      • (推荐)选择您已上传的目标附加依赖文件。

        您需要提前通过Flink全托管开发控制台左侧资源管理或部署作业的附件依赖文件右侧的更新JAR上传附件依赖文件。上传的附件依赖文件会固定被保存在oss://ossBucketName/artifacts/namespaces/namespaceName/<file> 目录。

      • 填写目标附加依赖文件的OSS路径。

        您需要提前将附加依赖文件上传至当前实例对应的OSS Bucket,上传附加依赖文件的OSS Bucket必须为您开通Flink全托管时选择的OSS Bucket。

      • 填写目标附加依赖文件的URL,目前仅支持以文件名结尾的URL,例如http://xxxxxx/<file>。

        您需要提前将附加依赖文件上传至公开可访问的HTTP服务。

      说明
      • 以上三种方式上传的附件依赖文件,也会被下载到目标机器,在作业运行时,加载到JM和TM所在Pod的/flink/usrlib目录下。

      • 如果作业勾选了提交到Session集群,则该作业不支持配置附加依赖文件路径。

      提交到Session集群

      不推荐生产环境使用。如果您选中了提交到Session集群后,需要在下面的下拉列表中,选择目标Session集群。Session集群创建步骤详情请参见步骤一:创建Session集群

      备注

      可选,填写备注信息。

      更多设置

      打开该开关后,您需要配置以下信息:

      • Kerberos集群:单击左侧下拉列表选择您已创建的Kerberos集群,Kerberos集群创建操作详情请参见创建Kerberos集群

      • principal:Kerberos principal又称为主体,主体可以是用户或服务,用于在Kerberos加密系统中标记一个唯一的身份。

    3. 单击部署

    说明

    部署完成后,您需要在作业运维页面,启动该作业。启动步骤详情请参见作业启动

    部署Python作业

    1. 作业运维页面,单击部署作业

    2. 填写配置信息如下。

      参数

      说明

      部署作业类型

      选择为Python。

      部署模式

      部署为流模式或批模式。

      部署名称

      填写对应的Python作业名称。

      引擎版本

      引擎版本详情请参见引擎版本介绍生命周期策略。建议您使用推荐版本或稳定版本,版本标记含义详情如下:

      • 推荐版本:当前最新大版本下的最新小版本。

      • 稳定版本:还在产品服务期内的大版本下最新的小版本,已修复历史版本缺陷。

      • 普通版本:还在产品服务期内的其他小版本。

      • EOS版本:超过产品服务期限的版本。

      说明

      从VVR 3.0.3版本(对应Flink 1.12版本)开始,VVP支持同时运行多个不同引擎版本的Python作业。如果您的作业已使用了Flink 1.12及更早版本的引擎,您需要按照以下情况进行处理:

      • Flink 1.12版本:停止后启动作业,系统将自动将引擎升级为vvr-3.0.3-flink-1.12版本。

      • Flink 1.11或Flink 1.10版本:手动将作业引擎版本升级到vvr-3.0.3-flink-1.12或vvr-4.0.8-flink-1.13版本后重启作业,否则会在启动作业时超时报错。

      Python文件地址

      请选择Python作业文件。Python文件可以为.py文件或者.zip文件。

      Entry Module

      程序的入口类。如果Python作业文件为.py文件,则该项不需要填写;如果Python作业文件为.zip文件,则需要在此处输入您的Entry Module,例如example.word_count。

      Entry Point Main Arguments

      作业参数。

      Python Libraries

      第三方Python包。第三方Python包会被添加到Python worker进程的PYTHONPATH中,从而在Python自定义函数中可以直接访问。如何使用第三方Python包,详情请参见使用第三方Python包

      Python Archives

      存档文件,目前仅支持ZIP格式的文件,例如 .zip、.jar、.whl和.egg等。

      存档文件会被解压到Python worker进程的工作目录下。如果存档文件所在的压缩包名称为mydata.zip,则在Python自定义函数中可以编写以下代码来访问mydata.zip存档文件。

      def map():  
          with open("mydata.zip/mydata/data.txt") as f: 
          ...

      请参见使用自定义的Python虚拟环境使用数据文件,了解更多关于Python Archives的信息。

      附加依赖文件

      选择您的Python作业文件,以及所用的依赖的数据文件等。Python依赖详情,请参见Python依赖管理。上传的依赖文件默认会被下载到作业运行节点的/flink/usrlib/目录下。

      说明

      Session集群不支持设置附加依赖文件,仅Per-Job集群支持设置附加依赖文件。

      提交到Session集群

      不推荐生产环境使用。如果您选中了提交到Session集群后,需要在下面的下拉列表中选择目标Session集群。详情请参见步骤一:创建Session集群

      备注

      可选,填写备注信息。

      更多设置

      打开该开关后,您需要配置以下信息:

      • Kerberos集群:单击左侧下拉列表选择您已创建的Kerberos集群,Kerberos集群创建操作详情请参见创建Kerberos集群

      • principal:Kerberos principal又称为主体,主体可以是用户或服务,用于在Kerberos加密系统中标记一个唯一的身份。

    3. 单击部署

    说明

    部署完成后,您需要在作业运维页面,启动该作业。启动步骤详情请参见作业启动

阿里云首页 实时计算Flink版 相关技术圈