tencent cloud

流计算 Oceanus

动态与公告
产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
计费模式
退费说明
调整配置费用说明
快速入门
从零开始上手
创建独享集群
创建 SQL 作业
创建 JAR 作业
创建 ETL 作业
创建 Python 作业
操作指南
作业管理
作业开发
作业监控
作业日志
事件与诊断
元数据管理
快照管理
作业调优
依赖管理
集群管理
权限管理
SQL 开发指南
开发指南概述
术语和数据类型
DDL 数据定义语句
DML 数据操作语句
MySQL CDC 多 Source 复用
上下游开发指南
SET 控制语句
运算符和内置函数
标识符与保留字
Python 开发指南
ETL 开发指南
概述
ETL 作业术语表
上下游开发指南
常见问题
联系我们

作业高级参数

PDF
聚焦模式
字号
最后更新时间: 2025-11-11 16:26:52

简介

用户可在作业参数 > 高级参数中配置更多自定义 Flink 参数来实现作业行为的微调,例如设置作业的重启策略、调整 SQL 的 Mini-Batch 配置、关闭异步快照、设置快照最小间隔、调整 RocksDB StateBackend 的缓存大小等。
自定义高级参数需按照 YAML 语法,以 “key: value” 的形式进行配置,英文冒号与 value 之间需要加上空格。修改作业参数后需重新发布并启动作业才能生效。Flink 1.11的参数具体说明详见社区 官方文档

示例

设置作业的状态后端(State Backend)

默认情况下,Oceanus 采用 RocksDB State Backend,这个状态后端允许超大的状态存取,但是吞吐量和性能方面比基于内存的 FileSystem State Backend 差很多。
如果您的作业状态用量很小,且对延迟、吞吐量要求很高,可以使用下面的语句切换到基于内存的 FileSystem State Backend:
state.backend: filesystem

配置作业重启策略和阈值

默认情况下,Flink 作业崩溃后只有5次内部重启(JobManager 存活时的热重启,大概15s 左右)的机会。超过阈值后再次发生崩溃时,JobManager 会主动退出,导致作业需要经历一个较长时间(约3 - 5分钟)的冷恢复过程;对于未开启快照的作业,可能造成较多的状态和数据丢失。
如果您希望调整作业内部允许的重启次数,可以配置下面的参数(该参数允许作业内部重启最多100次,请酌情调整):
restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 100
restart-strategy.fixed-delay.delay: 5 s

配置 JVM Overhead 比例

默认情况下,Flink 给 JVM 堆外原生内存(Overhead)的比例是0.1(即10%)。当使用 RocksDB 状态后端时,对此区域内存需求较大,可能会出现超额使用而造成 JVM 被容器管控系统 KILL。为了减少这种情况出现,增加使用 RocksDB 状态后端作业的稳定性,可以适当调大该参数比例。
注意
调大该堆外参数会导致 JVM 堆内存可用比例下降,作业更容易出现堆内 OOM,请在必要时再做调整。
taskmanager.memory.jvm-overhead.fraction: 0.3

配置 At Least Once 快照策略

默认情况下,流计算 Oceanus 使用 Exactly-Once 作为默认的快照策略,该策略可以确保作业崩溃恢复后,有最精确的状态一致性,但是少数情况下可能会造成较大延迟。
如果允许作业崩溃恢复时,一部分重复数据再次参与计算(造成短期的结果不精确),可以通过调整 Flink 的快照策略为 At Least Once,这样会取得更好的快照性能,尤其是对于状态超大且多个流之间的速度不一致时效果明显。
execution.checkpointing.mode: AT_LEAST_ONCE

关闭 Operator Chaining 功能

默认情况下,Flink 会将运行图中相同并行度的算子尽可能的绑在一起,避免数据上下游传输的序列化、反序列化额外开销。如果出于定位问题的角度,希望看到每个算子的数据流入流出情况,则可以关闭这个 Operator Chaining 功能。
注意
关闭此功能后,作业的运行效率可能会大幅下降,请谨慎使用。
pipeline.operator-chaining: false

设置作业的快照超时时间

默认情况下,Oceanus 快照超时时间为 20 分钟(1200s)。
如果您的作业状态用量很大,可以使用以下参数配置较大的超时时间:
execution.checkpointing.timeout: 3000s
或者减小快照超时时间:
execution.checkpointing.timeout: 1000s
同时,需要在 SQL 作业的编辑页面中添加以下语句,语句的值设为与超时时间配置相同的值,参考Flink 配置项
set CHECKPOINT_TIMEOUT= '1000 s';

设置作业快照保存策略

Oceanus 中 Flink 作业支持的快照保存策略为:DELETE_ON_CANCELLATION, RETAIN_ON_CANCELLATIONRETAIN_ON_SUCCESS。Flink 作业默认快照保存策略为 DELETE_ON_CANCELLATION,如果不设置该参数,自动采用默认策略。
以下为快照保存策略的对比:
快照保存策略
快照清理行为
DELETE_ON_CANCELLATION (默认策略)
1. 停止时快照,原有 Checkpoint 删除,无法从 Checkpoint 恢复
2. 停止时不进行快照,原有 Checkpoint 删除,无法从 Checkpoint 恢复
RETAIN_ON_CANCELLATION
1. 停止时快照,原有 Checkpoint 删除,无法从 Checkpoint 恢复
2. 停止时不进行快照,原有 Checkpoint 不删除,可以从 Checkpoint 恢复
RETAIN_ON_SUCCESS
1. 停止时快照,原有 Checkpoint 不删除,可以从 Checkpoint 恢复
2. 停止时不进行快照,原有 Checkpoint 不删除,可以从 Checkpoint 恢复
用户可以在 “作业参数 - 高级参数” 中设置作业快照保存策略,设置后重启作业才能生效。
execution.checkpointing.externalized-checkpoint-retention: RETAIN_ON_SUCCESS
注意
对于 Jar/PyFlink 类型的作业,建议用户不要在 Jar 包中显式设置作业快照保存策略,因为 Jar 包内设置的作业快照保存策略会覆盖高级参数中的设置。

更多的配置参数

Flink 提供了很多其他的配置参数,完整的列表可以参见 Flink 官方文档。
注意
不是所有参数都可以用在 Oceanus 平台,请仔细阅读下面的使用限制,并在充分了解问题和风险的情况下再做调整,避免调参失误造成的作业运行不稳定、无法启动等事故。

使用限制

以下参数由流计算 Oceanus 系统固定设置,禁止进行自定义修改,请勿在高级参数中传入。
禁用参数
kubernetes.container.image
kubernetes.jobmanager.cpu
taskmanager.cpu.cores
kubernetes.taskmanager.cpu
jobmanager.heap.size
jobmanager.heap.mb
jobmanager.memory.process.size
taskmanager.heap.size
taskmanager.heap.mb
taskmanager.memory.process.size
taskmanager.numberOfTaskSlots
env.java.opts(但是允许用户配置 env.java.opts.taskmanager 和 env.java.opts.jobmanager 两个独立参数)


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈