You need to enable JavaScript to run this app.
导航

开发 Flink JAR 任务

最近更新时间2024.04.08 15:39:07

首次发布时间2022.11.11 17:15:56

Flink 支持开发 JAR 类型任务。您可以自行编写业务应用程序并构建 JAR 包,只需上传应用 JAR 包并配置关键参数,便完成了 JAR 任务的开发,操作十分简单。
本文为您介绍 Stream 类型 JAR 任务的开发流程。如需了解 Batch JAR 任务,请参见开发 Flink Batch JAR 任务

前提条件

  • 项目管理员(Project_Admin)已经在项目内创建好 Flink 资源池,请参见创建资源池
  • 开发人员需提前完成业务应用程序开发,并构建好 JAR 包。JAR 包文件名称要符合控制台要求,只能由大小写字母、数字、下划线(_)、短横线(-)和英文句号(.)组成。

体验流程

图片
本文将 Flink JAR 任务开发流程总体分为了两个阶段,分别是开发阶段和运维阶段,每个阶段对应的成员及主要工作均不相同。

  • 开发阶段:一般是项目开发人员负责上传 JAR 包、开发和上线 JAR 任务。
  • 运维阶段:一般是项目运维人员负责启动任务,并查看任务运行情况。

步骤一:上传 JAR 包

Flink 控制台提供了 JAR 包资源统一管理的功能,您在体验开发 JAR 任务前,可以提前将 JAR 包上传到控制台。

  1. 登录流式计算 Flink 版控制台

  2. 在顶部菜单栏选择目标地域。

  3. 在左侧导航栏选择项目管理,然后单击项目区块进入项目。

  4. 在项目左侧导航栏选择任务开发 > Jupyter lab,单击资源库栏目,然后单击添加按钮。
    图片

  5. 创建资源对话框,设置资源名称、上传 JAR 包、填写资源描述,然后单击确定
    图片

    配置

    说明

    资源上传

    上传本地文件。

    • 上传文件的名称只能由大小写字母、数字、下划线(_)、短横线(-)和英文句号(.)组成。
    • 文件大小不超过 500 MB。
    • 如果重新上传文件,新文件将覆盖已上传的文件。

    资源名称

    默认与您上传文件的名称保持一致,支持自定义修改文件名称。
    文件的名称只能由大小写字母、数字、下划线(_)和英文句号(.)组成,字符长度范围为 1 ~ 60。

    文件夹

    选择资源文件的所属文件夹。
    系统默认存在一个默认文件夹,但为了更方便的管理资源文件,您可以自由创建文件夹。

    资源描述

    填写所上传资源文件的描述,一般为功能、用途描述。

步骤二:开发任务

  1. 登录流式计算 Flink 版控制台

  2. 在顶部菜单栏选择目标地域。

  3. 在左侧导航栏选择项目管理,在搜索框中根据项目名称进行模糊搜索,然后单击项目区块进入项目。

  4. 在项目左侧导航栏选择任务开发 > Jupyter lab,然后在任务开发页面单击加号按钮,创建任务。
    您也可以选择目标文件夹,直接在该文件夹中创建任务;也可以直接单击 Flink 任务下的 Flink Stream JAR

  5. 创建任务对话框,设置任务名称、所属文件夹、引擎版本等关键参数,然后单击确定
    图片

    配置

    说明

    任务名称

    自定义设置任务的名称。
    名称的字符长度限制在 1~48,支持数字、大小写英文字母、下划线(_)、短横线(-)和英文句号(.),且首尾只能是数字或字母。

    任务类型

    选择 Flink 任务 > Flink Stream > Jar
    如需体验 SQL 任务开发流程,请参见开发SQL作业

    所属文件夹

    系统提供文件夹管理功能,用于分类管理任务。在体验任务开发过程中,您可以直接选择系统默认存在的数据开发文件夹
    如果您有自建文件夹管理任务的要求,请单击创建文件夹的文件夹按钮,然后创建文件夹。

    引擎版本

    目前支持 Flink 1.11-volcano 、Flink 1.16-volcano、Flink 1.17-volcano 版本,请按需选择。

    任务描述

    输入任务的描述语句,一般描述任务实现的功能。

  6. 配置任务。
    在任务配置区域,设置任务关键参数,然后单击保存
    图片

    配置

    说明

    任务名称

    创建任务时设置的名称。

    JAR URI

    从下拉列表中选择已上传的 JAR 包资源。

    Entrypoint Class

    业务 JAR 包程序的主类,请根据界面提示填写。

    Entrypoint main args

    业务程序 main 函数的args[]参数,非必填项。请根据界面提示填写。

步骤三:上线 JAR 任务

开发与生产隔离,当任务开发者完成任务开发后,可以将任务上线到生产环境。

  1. 任务开发栏目下查找并单击目标任务,然后在编辑区上方选择正确的执行方式引擎版本,再单击上线

    说明

    Flink Stream 类型任务选择执行方式为 STREAMING;Flink Batch 类型任务选择执行方式为 BATCH

    图片

  2. 任务上线设置对话框,选择运行资源池、设置任务优先级调度策略,然后单击确定
    系统会提示任务上线成功,可以前往任务管理页面查看。
    图片

    配置

    说明

    运行资源池

    从下拉列表中选择任务运行的 Flink 资源池。

    注意

    如果您提交的任务开启了自动调优,则必须运行在按量付费类型的资源池。

    任务优先级

    系统默认预置的优先级为 L3,您可以按需设置任务优先级,数字越小优先级越高。
    任务优先级决定了任务内部的调度顺序,优先级高的任务先被调度,即 L3 先于 L4 被调度。

    调度策略

    根据需求配置任务调度策略:

    • GANG:保证任务的所有实例被一起调度,即当剩余资源满足任务正常运行所需资源时才进行分配;不满足所需资源则不分配。
      该策略不会出现分配资源后,任务却不能启动的现象,解决了资源死锁问题。

      说明

      Flink Batch 任务不支持 GANG 调度策略,仅支持 DRF 调度策略。执行方式选择为 Batch,上线配置页面不会展示 GANG 策略。

    • DRF:从多维资源考虑,更为合理地将资源公平分配给资源池内的各个任务,从而提升利用率。
      例如:剩余10 核 40 GB 的资源,A 任务需要10 核 20 GB 资源;B 任务需要 2 核 8 GB 的资源。如果分配给 A,剩余 0 核 20 GB 资源无法被利用;DRF 策略会选择分配给 B,剩下 8 核 32 GB 可以继续给后来任务使用。

    调度时长

    设置为 GANG 调度策略时,需要设置调度时长。调度时长表示再次调度的时间间隔,即任务拉起不成功会再次重试调度。
    如果超过调度时长,任务就会调度失败。如果设置为 0,则会一直重试。

步骤四:启动 JAR 任务

开发与生产隔离,任务开发者将任务上线到生产环境后,由运维人员启动任务。

  1. 在项目左侧导航栏选择任务运维 > 任务管理

  2. 任务列表页面,单击操作列中的启动

  3. 启动任务对话框,选择任务启动方式,然后单击确定
    图片

    配置

    说明

    启动方式

    请根据实际情况选择任务启动方式:

    • 从最新状态启动:以最新的 Checkpoint 或 Savepoint 启动。
    • 全新启动:不使用 Checkpoint 或 Savepoint,直接启动。
    • 指定快照启动:指定目标快照(Savepoint)启动。

    说明

    首次上线的任务,只能是全新启动方式。

    参数配置

    任务携带在开发侧的并行度、Task Manager 和 Job Manager 的资源配置。在启动任务时支持您更新配置并快速生效。

    说明

    更新参数配置并启动任务后,将新增一个任务版本,并将最新配置同步到任务开发侧。

    • 并行度:任务全局并发数。
    • 单个 TaskManager CPU 数:单个 TaskManager 的 CPU 核数。
    • 单个 TaskManager 内存大小:单个 TaskManager 占用的内存大小。
    • 单个 TaskManager slot 数:单个 TaskManager 的 Slot 数量。
    • JobManager CPU 数:单个 JobManager 的 CPU 核数。
    • JobManager 内存大小:单个 JobManager 占用的内存大小。

    更多设置

    在任务开发变更时新增或修改算子,可能会导致任务无法从快照恢复,此时您可以选择启用允许忽略部分算子状态功能,保证任务能正常运行。
    图片

    注意

    • 仅当选择指定快照启动从最新状态启动方式时,支持勾选忽略部分算子状态。
    • 当您选择全新启动方式时,不支持忽略算子状态。

任务在生产环境上正常运行后,您可以在 Flink UI 界面了解任务运行、TaskManager、JobManager 的详细信息。

  1. 在项目左侧导航栏选择任务运维 > 任务管理
  2. 任务列表页面筛选目标任务,单击操作列下的 Flink UI
    浏览器将会自动打开 Apache Flink Dashboard 页面。
  3. 在 Apache Flink Dashboard 左侧导航栏选择 Task Managers,然后单击任务 ID。
    图片
  4. 在任务的 Task Manager 详情页面,单击 Stdout 页签,然后在日志中搜索successfully,查看任务执行结果。
    图片