Flink 支持开发 JAR 类型任务。您可以自行编写业务应用程序并构建 JAR 包,只需上传应用 JAR 包并配置关键参数,便完成了 JAR 任务的开发,操作十分简单。
本文为您介绍 Stream 类型 JAR 任务的开发流程。如需了解 Batch JAR 任务,请参见开发 Flink Batch JAR 任务。
本文将 Flink JAR 任务开发流程总体分为了两个阶段,分别是开发阶段和运维阶段,每个阶段对应的成员及主要工作均不相同。
Flink 控制台提供了 JAR 包资源统一管理的功能,您在体验开发 JAR 任务前,可以提前将 JAR 包上传到控制台。
在顶部菜单栏选择目标地域。
在左侧导航栏选择项目管理,然后单击项目区块进入项目。
在项目左侧导航栏选择任务开发 > Jupyter lab,单击资源库栏目,然后单击添加按钮。
在创建资源对话框,设置资源名称、上传 JAR 包、填写资源描述,然后单击确定。
配置 | 说明 |
---|---|
资源上传 | 上传本地文件。
|
资源名称 | 默认与您上传文件的名称保持一致,支持自定义修改文件名称。 |
文件夹 | 选择资源文件的所属文件夹。 |
资源描述 | 填写所上传资源文件的描述,一般为功能、用途描述。 |
在顶部菜单栏选择目标地域。
在左侧导航栏选择项目管理,在搜索框中根据项目名称进行模糊搜索,然后单击项目区块进入项目。
在项目左侧导航栏选择任务开发 > Jupyter lab,然后在任务开发页面单击加号按钮,创建任务。
您也可以选择目标文件夹,直接在该文件夹中创建任务;也可以直接单击 Flink 任务下的 Flink Stream JAR。
在创建任务对话框,设置任务名称、所属文件夹、引擎版本等关键参数,然后单击确定。
配置 | 说明 |
---|---|
任务名称 | 自定义设置任务的名称。 |
任务类型 | 选择 Flink 任务 > Flink Stream > Jar。 |
所属文件夹 | 系统提供文件夹管理功能,用于分类管理任务。在体验任务开发过程中,您可以直接选择系统默认存在的数据开发文件夹。 |
引擎版本 | 目前支持 Flink 1.11-volcano 、Flink 1.16-volcano、Flink 1.17-volcano 版本,请按需选择。 |
任务描述 | 输入任务的描述语句,一般描述任务实现的功能。 |
配置任务。
在任务配置区域,设置任务关键参数,然后单击保存。
配置 | 说明 |
---|---|
任务名称 | 创建任务时设置的名称。 |
JAR URI | 从下拉列表中选择已上传的 JAR 包资源。 |
Entrypoint Class | 业务 JAR 包程序的主类,请根据界面提示填写。 |
Entrypoint main args | 业务程序 main 函数的 |
开发与生产隔离,当任务开发者完成任务开发后,可以将任务上线到生产环境。
在任务开发栏目下查找并单击目标任务,然后在编辑区上方选择正确的执行方式和引擎版本,再单击上线。
说明
Flink Stream 类型任务选择执行方式为 STREAMING;Flink Batch 类型任务选择执行方式为 BATCH。
在任务上线设置对话框,选择运行资源池、设置任务优先级和调度策略,然后单击确定。
系统会提示任务上线成功,可以前往任务管理页面查看。
配置 | 说明 |
---|---|
运行资源池 | 从下拉列表中选择任务运行的 Flink 资源池。 注意 如果您提交的任务开启了自动调优,则必须运行在按量付费类型的资源池。 |
任务优先级 | 系统默认预置的优先级为 L3,您可以按需设置任务优先级,数字越小优先级越高。 |
调度策略 | 根据需求配置任务调度策略:
|
调度时长 | 设置为 GANG 调度策略时,需要设置调度时长。调度时长表示再次调度的时间间隔,即任务拉起不成功会再次重试调度。 |
开发与生产隔离,任务开发者将任务上线到生产环境后,由运维人员启动任务。
在项目左侧导航栏选择任务运维 > 任务管理。
在任务列表页面,单击操作列中的启动。
在启动任务对话框,选择任务启动方式,然后单击确定。
配置 | 说明 |
---|---|
启动方式 | 请根据实际情况选择任务启动方式:
说明 首次上线的任务,只能是全新启动方式。 |
参数配置 | 任务携带在开发侧的并行度、Task Manager 和 Job Manager 的资源配置。在启动任务时支持您更新配置并快速生效。 说明 更新参数配置并启动任务后,将新增一个任务版本,并将最新配置同步到任务开发侧。
|
更多设置 | 在任务开发变更时新增或修改算子,可能会导致任务无法从快照恢复,此时您可以选择启用允许忽略部分算子状态功能,保证任务能正常运行。 注意
|
任务在生产环境上正常运行后,您可以在 Flink UI 界面了解任务运行、TaskManager、JobManager 的详细信息。
successfully
,查看任务执行结果。