Skip to content

Flink 程序

说明

Flink 程序用于执行 Flink 程序。对于 Flink 节点:

当程序类型为 Java、Scala 或 Python 时,worker 使用 Flink 命令提交任务 flink run。

当程序类型为 SQL 时,worker 使用 sql-client.sh 提交任务。

提示:

执行Flink程序前,需要在${dolphinscheduler安装目录}/bin/env/dolphinscheduler_env.sh文件中,修改FLINK_HOME指向flink服务在服务器中的路径。如export FLINK_HOME=${FLINK_HOME:-/home/flink/flink-1.15.4}。

配置项说明

Flink 程序的配置项分为 6 大类:基础环境、程序本体、资源分配、程序参数、高级配置、运行控制,核心是「部署模式 + 资源分配 + 检查点 / 状态后端」。

1. 基础信息配置(必选)

这类配置决定 Flink 程序的运行环境和部署基础,是任务能执行的前提,核心是「指定 Flink 集群和运行模式」。

配置项默认值描述
程序类型JAVA支持 Java、Scala、Python 和 SQL 四种语言。
Flink 版本<1.10指定使用的 Flink 版本(匹配集群实际版本,避免兼容性问题)。
任务名称-Flink 程序的名称。
部署方式clusterFlink 作业的部署模式,支持 cluster 和 local 两种模式的部署。

2. 程序配置(必选)

这类配置指向要运行的 Flink 程序本身,决定「跑哪个程序」,区分批处理 / 流处理程序类型。

配置项默认值描述
主函数的 Class-Flink 应用的入口类全路径(如 StreamJob 主类),Jar 包模式下必填。
主程序包-执行 Flink 程序的 jar 包(通过项目配置》文件管理上传)。
初始化脚本-用于初始化会话上下文的脚本文件。

3. 资源配置(核心)

这类配置决定 Flink 作业的资源占用,是流式作业稳定性和性能的关键,Flink 以「Slot/TaskManager」为核心资源单位(区别于 Spark 的 Executor)。

配置项默认值描述
JobManager内存数1GJM 进程内存大小(Flink 总控节点,类似 Spark Driver)。
TaskManager内存数2GTM 进程内存大小(Flink 计算节点,类似 Spark Executor)。
Slot数量1作业总 Slot 数(Flink 最小资源单位,决定并行度基础)。
TaskManager数量2每个 TM 占用的 CPU 核心数(决定 TM 能承载的 Slot 数)。
并行度1作业全局并行度(覆盖程序内默认并行度,流式作业核心调优项)。

4. 资源选择(可选)

这类配置用于选择 Flink 程序依赖的外部 Jar 包。

配置项默认值描述
资源-作业依赖的外部 Jar 包(多个用逗号分隔),如果其他参数中引用了资源文件,需要在资源中选择指定。

5. 程序参数配置(可选)

这类配置是传递给 Spark 主类 / 脚本的业务参数,决定「程序怎么跑(业务逻辑层面)」。

配置项默认值描述
主程序参数-Flink 主类的入参(多个参数用空格分隔),支持自定义参数变量的替换。
Jar/Python 模式下的入参(多个用空格分隔),SQL 模式下无效。
Flink SQL 模式下的自定义变量(键值对形式,替换 SQL 中的 ${变量})
选项参数-传递给 spark-submit 的额外配置(--conf 开头),支持 --jar、--files、--archives、--conf 格式。

6. 运行控制配置(可选)

这类配置决定 Spark 任务在 DolphinScheduler 内的运行规则,属于调度层面的配置。在「通用配置」中进行配置。

配置项默认值描述
任务优先级MEDIUMworker 线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。
Worker 分组default任务分配给 worker 组的机器执行,选择 Default,会随机选择一台 worker 机器执行。
任务组-用于控制任务实例并发,选择项目中已经定义好的任务组。
任务组优先级0任务在任务组内运行的优先级,数字越大优先级越高。
环境名称-运行程序时指定的虚拟环境。
本地参数-是程序局部的用户自定义参数,会替换程序中以 ${变量} 的内容。
失败重试次数0任务失败后的重试次数,单位:次。
失败重试间隔1多次重试之间的等待时间,单位:分钟。
超时告警关闭勾选超时告警、超时失败,当任务超过”超时时长”后,会发送告警邮件并且任务执行失败。

FAQ