全部产品
Search
文档中心

实时计算Flink版:部署作业

更新时间:May 07, 2024

完成作业开发后,您需要将作业部署。部署将开发和生产隔离,部署后不影响运行中的作业,只有(重新)启动后才会正式上线运行。本文为您介绍如何部署SQL作业、JAR作业和Python作业。

前提条件

已完成作业开发。

使用限制

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

资源上传

作业部署前,您可以根据需要将JAR包、Python作业文件或Python依赖上传到Flink开发控制台。

  1. 登录实时计算控制台

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

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

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

说明

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

操作步骤

  1. 登录实时计算控制台

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

    部署SQL作业

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

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

    3. 填写配置信息如下。

      参数

      说明

      备注

      可选,填写备注信息。

      作业标签

      配置作业标签后,您可以在作业运维页面根据标签名标签值快速过滤找到目标作业。您最多创建3组作业标签。

      部署目标

      在下拉列表中,选择目标资源队列或者Session集群(请勿生产使用)。详情请参见管理资源队列步骤一:创建Session集群

      说明

      部署到Session集群的作业不支持显示数据曲线、配置监控告警和开启自动调优功能。请勿将Session集群用于正式生产环境,Session集群可以作为开发测试环境。详情请参见作业调试

      跳过部署前的深度检查

      选中后,在部署前就跳过深度检查。

    4. 单击确定

    部署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集群可以作为开发测试环境。详情请参见作业调试

      备注

      可选,填写备注信息。

      作业标签

      配置作业标签后,您可以在作业运维页面根据标签名标签值快速过滤找到目标作业。您最多创建3组作业标签。

      更多设置

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

      • 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集群用于正式生产环境,Session集群可以作为开发测试环境。详情请参见作业调试

      备注

      可选,填写备注信息。

      作业标签

      配置作业标签后,您可以在作业运维页面根据标签名标签值快速过滤找到目标作业。您最多创建3组作业标签。

      更多设置

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

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

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

    3. 单击部署

相关文档