Skip to content

3.3.3 实时开发 ​

实时开发面向持续流入的数据。与离线开发最大的差别是:实时任务不编排 DAG,一个任务就是一个独立的 Flink 作业;任务必须「上线」后才能「启动」,启动后生成实时实例并提交作业。

表18 离线开发与实时开发的操作差异
对比项离线开发实时开发
组织方式工作流 + 工作流内的多个节点(DAG)单个实时任务,不编排节点
页面形态画布式编辑器列表 + 表单弹窗
发布说法上线 / 下线上线 / 下线
运行说法运行(生成工作流实例)启动(生成实时实例并提交作业)
结果查看工作流实例 / 任务实例实时任务实例

左右滑动查看完整表格

3.3.3.1 实时任务定义列表 ​

从左侧菜单进入「实时开发」,页面分为左侧目录树、顶部页签与右侧列表。目录树用于按目录组织任务,顶部可在「任务定义」与「任务实例」之间切换。

表19 实时开发页面的结构
区域内容说明
目录全部任务 / 自定义目录 / 新建目录后的数字为该目录下的任务数,点击目录可筛选
页签任务定义 / 任务实例任务定义看配置与操作,任务实例看每次启动的运行记录
筛选任务名称、类型、状态类型可选 SQL / JAR,状态可选已上线 / 已下线
操作按钮批量复制、批量删除、新建任务对勾选行批量处理,或新建单个任务

左右滑动查看完整表格

列表每行是一个实时任务,任务名称下方标注所属目录与创建人。行尾提供四个操作入口:

表20 实时任务列表的字段与操作
列 / 操作含义
任务 ID系统分配的任务编号
任务名称任务标识,下方小字为「目录 · 创建人」
类型SQL 或 JAR,分别对应 Flink SQL 作业与 Flink JAR 作业
状态「已上线」可启动;「已下线」不能启动
创建时间 / 更新时间时间信息,页面以 UTC 时间带时区显示
编辑打开「编辑实时任务」弹窗,修改任务配置与代码
启动提交一次运行;任务未上线时会被拦截
上线 / 下线切换任务的上线状态
更多收纳该任务的其他操作入口

左右滑动查看完整表格

3.3.3.2 新建实时任务 ​

点击右上角「新建任务」,弹出「新建实时任务」窗口。窗口内容随「作业类型」变化:选择 Flink JAR 时填写 JAR 作业参数,选择 Flink SQL 时填写 SQL 与执行模式。

表21 新建实时任务的字段(Flink JAR)
分区字段说明
基础信息任务名称必填。以小写字母开头,仅支持小写字母、数字与下划线,长度 3–64 位
所属目录必填。任务归属目录,决定在左侧目录树中的位置
作业类型Flink JAR 或 Flink SQL
部署模式默认 Application(独立部署)
K8s 数据源必填。作业提交使用的 K8s 集群数据源
命名空间必填。作业在 K8s 中的命名空间
运行内容对象存储数据源默认取资源空间绑定的存储
Flink 根目录必填。形如 s3://datasphere-test/flink/
JAR 资源必填。从当前存储中选择 JAR 文件,可跳转「资源中心」上传
Main Class必填。JAR 的入口类
程序参数 / 第三方 JAR多个参数以空格分隔;多个路径以分号分隔
挂载文件只读挂载到 JobManager 与 TaskManager,单文件上限 64 KiB,合计 128 KiB,最多 8 个
资源配置JobManager / TaskManager 的 CPU 与内存内存必填,默认 1g;CPU 默认 1.0
每 TaskManager 插槽默认 2
状态与升级Checkpoint 间隔 / 保留数默认 10m、保留 3 个
高可用类型默认 kubernetes
取消任务后的 Checkpoint默认「取消任务后保留」
升级模式默认 stateless
History Server可选。选择后可回看任务归档日志
固定并行度 / 自定义 Flink 参数固定并行度默认 1;自定义参数按 Flink 配置项填写

左右滑动查看完整表格

JAR 作业会覆盖平台的 Checkpoint 设置

JAR 程序调用 enableCheckpointing 或设置 CheckpointConfig 时,会覆盖平台默认值。填写「程序参数」中的 checkpoint 相关配置时,需与「Checkpoint 间隔」核对,以 Flink 实际运行配置为准。

3.3.3.3 编辑实时任务 ​

在任务定义列表点击「编辑」,弹出「编辑实时任务」窗口。与新建相比,这里多出「Flink Session」与「SQL 内容」,用于修改已存在任务的代码与运行参数。

表22 编辑实时任务的字段
字段说明
任务名称可修改,命名规则与新建一致
所属目录任务归属目录
作业类型Flink SQL 或 Flink JAR
Flink SessionSQL 作业使用的 Session 集群
执行模式STREAMING 等;选择后会修改 SQL 中的执行模式
SQL 内容必填。作业的 Flink SQL,可包含建表语句与查询语句
版本说明本次修改的说明,便于日后回溯

左右滑动查看完整表格

修改并保存后需要重新上线

已上线的任务修改保存后,需要重新「上线」,新配置才会在下次启动时生效。正在运行的实例不会因为保存而自动变更;如需按新逻辑运行,应在任务实例中停止后重新启动。

3.3.3.4 上线与启动 ​

实时任务必须先上线再启动,这是与离线开发相比最需要记住的一条规则。

未上线时点「启动」会被拦截

对一个「已下线」的任务点「启动」,系统提示「任务已下线,请先上线再启动」,不会提交作业。正确顺序是:先点「上线」,再点「启动」。

任务上线后再次点「启动」,弹出「启动实时任务」窗口,用于选择本次启动的恢复方式。

表23 启动实时任务的恢复方式
选项说明
恢复方式三选一:Checkpoint / Savepoint / 全新启动
Checkpoint 恢复点列出可用的 Checkpoint;没有时显示「没有可用恢复点」,可点「刷新 Checkpoint」
Savepoint 恢复点列出可用的 Savepoint;没有时显示「没有可用恢复点」,可点「刷新 Savepoint」
全新启动不装载旧的 Flink 状态;页面说明:不会清空 Kafka 位点或数仓数据

左右滑动查看完整表格

选择「全新启动」时不需要恢复点;选择 Checkpoint 或 Savepoint 时,必须先在对应列表中选中一个恢复点,否则无法提交。

3.3.3.5 停止与重启 ​

任务的停止与重启都在「任务实例」页完成,而不是在任务定义列表。任务实例页的「操作」列提供「停止」与「日志」两个入口。

  1. 进入「实时开发 → 任务实例」,按任务名称或 Job ID 找到要停止的实例。
  2. 点击该行「停止」,系统终止对应的 Flink 作业,实例状态变为「已停止」。
  3. 需要重启时回到「任务定义」,重新点「启动」,并在弹窗中选择恢复方式。

重启不会自动延续状态

重启时如果选择「全新启动」,不会装载旧状态。若希望从上次进度继续,需在启动弹窗中选择 Checkpoint 或 Savepoint,并确认列表中存在可用恢复点。

3.3.3.6 实时任务实例 ​

「实时开发 → 任务实例」页签列出每次启动产生的实时实例,可按任务名称或 Job ID 查询。

表24 实时任务实例的字段与操作
列 / 操作含义
实例 ID实时实例编号
任务名称实例名,由任务名称加实例编号组成
Job IDFlink 作业 ID,排查问题时用于在 Flink 侧定位作业
实例实例在集群中的名称
状态例如「已停止」
启动时间实例启动时间,以 UTC 时区显示
操作:停止停止该实例对应的作业
操作:日志查看该实例的运行日志

左右滑动查看完整表格

3.3.3.7 实时任务管理 ​

除编辑与启停外,实时任务的日常管理还包括状态核对与批量处理:

表25 实时任务的日常管理操作
操作位置说明
查看任务配置任务定义 > 编辑以弹窗形式查看并修改全部配置项
切换上线状态任务定义 > 上线 / 下线下线后不能启动;上线后才能启动
复制任务任务定义 > 勾选行 > 批量复制以已有任务为模板产生新任务,适合同构作业批量搭建
删除任务任务定义 > 勾选行 > 批量删除删除前确认任务已停止,避免作业失去管理入口
查看运行日志任务实例 > 日志查看作业提交与运行输出,用于定位启动失败

左右滑动查看完整表格

判断实时任务是否正常运行

三个观察点:任务定义列表的「状态」为「已上线」;任务实例列表存在状态为运行中的实例;实例的「日志」中无报错输出。三者同时满足,才说明作业在正常运行。

大数据平台用户操作手册