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 包上传到控制台。
登录流式计算 Flink 版控制台 。 在顶部菜单栏选择目标地域。 在左侧导航栏选择项目管理 ,然后单击项目区块进入项目。 在项目左侧导航栏选择文件管理 ,然后单击上传资源 按钮。
在上传资源 对话框,设置资源目录、上传 JAR 包、填写资源描述,然后单击确定 。
配置
说明
资源上传
上传本地文件。
上传文件的名称只能由大小写字母、数字、下划线(_)、短横线(-)和英文句号(.)组成。 文件大小不超过 500 MB。 如果重新上传文件,新文件将覆盖已上传的文件。 资源名称
默认与您上传文件的名称保持一致,支持自定义修改文件名称。
文件的名称只能由大小写字母、数字、下划线(_)和英文句号(.)组成,字符长度范围为 1 ~ 60。
文件夹
选择资源文件的所属文件夹。
系统默认存在一个默认文件夹 ,但为了更方便的管理资源文件,您可以自由创建文件夹。
资源描述
填写所上传资源文件的描述,一般为功能、用途描述。
步骤二:开发任务 登录流式计算 Flink 版控制台 。 在顶部菜单栏选择目标地域。 在左侧导航栏选择项目管理 ,在搜索框中根据项目名称进行模糊搜索,然后单击项目区块进入项目。 在项目左侧导航栏选择作业开发 。 在作业开发 页面单击加号按钮,创建任务。
您也可以选择目标文件夹,直接在该文件夹中创建任务;也可以直接单击 Flink 任务 下的 Flink JAR 。 在创建作业 对话框,设置任务名称、所属文件夹、引擎版本等关键参数,然后单击确定 。
*
配置
说明
任务名称
自定义设置任务的名称。
名称的字符长度限制在 1~48,支持数字、大小写英文字母、下划线(_)、短横线(-)和英文句号(.),且首尾只能是数字或字母。
作业类型
选择 Flink 任务 > Flink JAR 。
所属文件夹
从下拉列表中选择目标文件夹。
系统默认存在一个数据开发文件夹 ,但为了更方便的管理任务,您可以自由创建文件夹。如何创建任务文件夹,请参见管理任务文件夹 。
引擎版本
目前支持 Flink 1.11-volcano 、Flink 1.16-volcano、Flink 1.17-volcano 版本,请按需选择。
任务描述
输入任务的描述语句,一般描述任务实现的功能。
在任务配置区域,设置任务关键参数。
配置
说明
任务名称
自定义设置任务的名称。
名称的字符长度限制在 1~48,支持数字、大小写英文字母、下划线(_)、短横线(-)和英文句号(.),且首尾只能是数字或字母。
任务类型
选择 Flink 任务 > Flink Stream > Jar 。
如需体验 SQL 任务开发流程,请参见开发SQL作业 。
所属文件夹
系统提供文件夹管理功能,用于分类管理任务。在体验任务开发过程中,您可以直接选择系统默认存在的数据开发文件夹 。
如果您有自建文件夹管理任务的要求,请单击创建文件夹的文件夹按钮,然后创建文件夹。
引擎版本
目前支持 Flink 1.11-volcano 、Flink 1.16-volcano、Flink 1.17-volcano 版本,请按需选择。
任务描述
输入任务的描述语句,一般描述任务实现的功能。
配置任务。
在任务配置区域,设置任务关键参数,然后单击保存 。
配置
说明
任务名称
创建任务时设置的名称。
JAR URI
从下拉列表中选择已上传的 JAR 包资源。
Entrypoint Class
业务 JAR 包程序的主类,请根据界面提示填写。
Entrypoint main args
业务程序 main 函数的args[]
参数,非必填项。请根据界面提示填写。
步骤三:上线 JAR 任务 开发与生产隔离,当任务开发者完成任务开发后,可以将任务上线到生产环境。
在任务上线设置 对话框,选择运行资源池 、设置任务优先级 和调度策略 ,然后单击确定 。
系统会提示任务上线成功,可以前往任务管理 页面查看。
配置
说明
运行资源池
从下拉列表中选择任务运行的 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 任务 开发与生产隔离,任务开发者将任务上线到生产环境后,由运维人员启动任务。
在项目左侧导航栏选择任务运维 > 任务管理 。
在任务列表 页面,单击操作 列中的启动 。
在启动任务 对话框,选择任务启动方式,然后单击确定 。
配置
说明
启动方式
请根据实际情况选择任务启动方式:
从最新状态启动:以最新的 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 任务在生产环境上正常运行后,您可以在 Flink UI 界面了解任务运行、TaskManager、JobManager 的详细信息。
在项目左侧导航栏选择任务运维 > 任务管理 。 在任务列表 页面筛选目标任务,单击操作 列下的 Flink UI 。
浏览器将会自动打开 Apache Flink Dashboard 页面。 在 Apache Flink Dashboard 左侧导航栏选择 Task Managers ,然后单击任务 ID。 在任务的 Task Manager 详情页面,单击 Stdout 页签,然后在日志中搜索successfully
,查看任务执行结果。