部署作业

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

前提条件

已完成作业开发。

资源上传

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

  1. 登录实时计算控制台

  2. 单击目标工作空间操作列下的控制台

  3. 在左侧导航栏,单击文件管理

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

说明

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

操作步骤

  1. 登录实时计算控制台

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

    部署SQL作业

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

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

    3. 填写配置信息如下。

      参数

      说明

      备注

      可选,填写备注信息。

      作业标签

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

      部署目标

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

      说明

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

      跳过部署前的深度检查

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

    4. 单击确定

      作业运维页面,您可以查看已部署的SQL作业,并根据需要启动作业。

    部署YAML作业

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

    1. 数据开发 > 数据摄入页面,进行YAML作业开发,详情请参见数据摄入YAML作业开发(公测中)

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

    3. 填写配置信息如下。

      参数

      说明

      备注

      可选,填写备注信息。

      作业标签

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

      部署目标

      在下拉列表中,选择目标资源队列,详情请参见管理资源队列

      跳过部署前的深度检查

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

    4. 单击确定

      作业运维页面,您可以查看已部署的YAML作业,并根据需要启动作业。

    部署JAR作业

    1. 运维中心 > 作业运维页面,单击部署作业 > JAR作业

    2. 填写配置信息如下。

      参数

      说明

      部署模式

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

      部署名称

      填写对应的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/不能省略,且不能更改。

      附加依赖文件

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

        您需要提前在实时计算开发控制台左侧资源管理或部署作业的附件依赖文件右侧的更新JAR上传附件依赖文件。上传的附件依赖文件被保存位置及路径详情如下:

        • 如果您工作空间存储类型为OSS Bucket,则文件实际会被存放至名称为您开通Flink工作空间时绑定的OSS Bucket下的artifacts目录。文件路径格式为oss://<您绑定的OSS Bucket名称>/artifacts/namespaces/<项目空间名称>

        • 如果您工作空间存储类型为全托管存储,则文件实际会被存放至实时计算开发控制台资源管理。文件路径格式为oss://flink-fullymanaged-<工作空间ID>/artifacts/namespaces/<项目空间名称>目录下。

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

        上传附加依赖文件的OSS路径必须为开通当前Flink工作空间时选择的OSS Bucket地址。

      • 填写目标附加依赖文件的URL。

        必须为实时计算Flink版可以访问且被允许访问(公共读或无权限)的其他外部存储系统地址。目前仅支持以文件名结尾的URL,例如http://xxxxxx/<file>。

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

      • 如果部署目标选择为Session集群,则该作业不支持配置附加依赖文件。

      部署目标

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

      说明

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

      备注

      可选,填写备注信息。

      作业标签

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

      更多设置

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

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

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

    3. 单击部署

      作业运维页面,您可以查看已部署的JAR作业,并根据需要启动作业。

    部署Python作业

    1. 运维中心 > 作业运维页面,单击部署作业 > Python作业

    2. 填写配置信息如下。

      参数

      说明

      部署模式

      部署为流模式或批模式。

      部署名称

      填写对应的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参数为空时,该参数必须以.py结尾。

      Entry Module

      程序的入口类,例如example.word_count。

      Python文件地址是以.zip结尾时,该参数必填。

      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依赖管理

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

        您需要提前在实时计算开发控制台左侧资源管理或部署作业的附件依赖文件右侧的更新JAR上传附件依赖文件。上传的附件依赖文件被保存位置及路径详情如下:

        • 如果您工作空间存储类型为OSS Bucket,则文件实际会被存放至名称为您开通Flink工作空间时绑定的OSS Bucket下的artifacts目录。文件路径格式为oss://<您绑定的OSS Bucket名称>/artifacts/namespaces/<项目空间名称>

        • 如果您工作空间存储类型为全托管存储,则文件实际会被存放至实时计算开发控制台资源管理。文件路径格式为oss://flink-fullymanaged-<工作空间ID>/artifacts/namespaces/<项目空间名称>目录下。

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

        上传附加依赖文件的OSS路径必须为开通当前Flink工作空间时选择的OSS Bucket地址。

      • 填写目标附加依赖文件的URL。

        必须为实时计算Flink版可以访问且被允许访问(公共读或无权限)的其他外部存储系统地址。目前仅支持以文件名结尾的URL,例如http://xxxxxx/<file>。

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

      • 如果部署目标选择为Session集群,则该作业不支持配置附加依赖文件。

      部署目标

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

      说明

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

      备注

      可选,填写备注信息。

      作业标签

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

      更多设置

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

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

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

    3. 单击部署

      作业运维页面,您可以查看已部署的Python作业,并根据需要启动作业。

相关文档

  • 作业启动前或者上线后,您可以配置和修改作业资源、部署信息,详情请参见配置作业部署信息配置作业资源

  • 部署完成后,您需要在运维中心 > 作业运维页面启动该作业,才能使作业正式上线运行。启动步骤详情请参见作业启动