ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Apache SeaTunnel 3.0 从理论到实践 -第 11 章 生产运维与监控

Apache SeaTunnel 3.0 从理论到实践 -第 11 章 生产运维与监控

Apache SeaTunnel 3.0 从理论到实践 -第 11 章 生产运维与监控

章节定位:前 10 章讲了怎么搭、怎么配、怎么跑,本章讲怎么盯、怎么调、怎么修。SeaTunnel Zeta Engine 自带的监控面板 + Checkpoint 调优 + 故障排查手册 + 版本升级回退 SOP,全部锚定生产实战。特别关注 Zeta 特有的Pipeline 级容错、动态线程共享、无外部依赖(不需要 ZK/HDFS 做状态存储)这三个特性对运维的影响。


学习目标

  • ✓ 能说出 SeaTunnel Web 监控面板 3.0 新特性 + Zeta Engine 核心指标;
  • ✓ 能说出 Checkpoint 调优四件套(interval/timeout/min-pause/max-concurrent)+ Zeta Pipeline 级容错对 Checkpoint 的影响;
  • ✓ 能说出 5 类典型故障的排查路径(提交冲突/Checkpoint 超时/Schema Evolution 失败/Consumer lag/Zeta Master failover);
  • ✓ 能说出 SeaTunnel 版本升级顺序 + 回退预案;
  • ✓ 能写出生产级运维 SOP(监控面板 + 告警阈值 + 日终对账 + 升级窗口)。

11.1 SeaTunnel Web 监控

SeaTunnel Web 是 3.0 自带的监控面板——不需要额外部署 Prometheus/Grafana,Zeta Master 自带 REST API + Web UI。3.0 比 2.3.13 新增了多 Pipeline 视图和Checkpoint 可视化。

11.1.1 启动与访问

# Zeta Standalone 模式下自动启动 SeaTunnel Web# 默认地址:http://localhost:8801# 配置在 seatunnel-server/conf/seatunnel.yaml# Zeta Cluster 模式下 Master 节点自动启动# 多 Master 集群选 Leader Master 访问

11.1.2 Web UI 核心视图

视图内容3.0 新特性
Jobs 列表所有作业状态(RUNNING/FAILED/FINISHED)+ 启动时间 + 耗时✓ 多 Pipeline 展开视图
Job 详情Source/Transform/Sink 各组件 + 数据流向 + RowKind 比例✓ RowKind 实时柱状图
Pipeline 列表每个作业拆分的所有 Pipeline + 各自并行度 + Checkpoint 状态✓Pipeline 级独立状态
Checkpoint 历史每次 Checkpoint 的耗时/大小/触发原因✓Checkpoint 可视化时间线
Metrics吞吐量/延迟/背压/GC 等 JVM 指标-
LogsMaster/Worker 日志实时查看-

11.1.3 Pipeline 级独立状态视图(3.0 新增)

Zeta Engine 的 Pipeline 级容错意味着一个作业拆分的多条 Pipeline 可以独立成功/失败——这是 Flink/Spark 适配层做不到的。3.0 Web UI 专门展示这个:

图 11-1 SeaTunnel Web Pipeline 级状态视图 Job: mysql_cdc_doris_paimon_dual (RUNNING) ├── Pipeline-1: vehicles → Doris (FAILED) ← Doris BE 挂了 │ ├── Checkpoint #47: SUCCESS (32s) │ └── Checkpoint #48: FAILED (timeout) └── Pipeline-2: vehicles → Paimon (RUNNING) ← 照常写入 ├── Checkpoint #47: SUCCESS (28s) └── Checkpoint #48: SUCCESS (25s)

运维价值:Doris BE 挂了 → 只需要恢复 Pipeline-1 的 Checkpoint,Pipeline-2 不受影响继续写 Paimon——比 Flink 整作业回滚恢复快 10x+。

11.1.4 REST API 监控接口

SeaTunnel Web 提供 REST API,可以对接 Prometheus AlertManager / 钉钉 / 飞书告警:

# 列出所有作业状态curlhttp://localhost:8801/api/jobs# 查询某个 Pipeline 的 Checkpoint 历史curlhttp://localhost:8801/api/jobs/{jobId}/pipelines/{pipelineId}/checkpoints# 查询 Worker 节点状态curlhttp://localhost:8801/api/workers# 查询 Checkpoint 成功率(告警阈值:成功率 < 90% 时告警)curlhttp://localhost:8801/api/jobs/{jobId}/metrics?metric=checkpoint_success_rate

Prometheus 抓取配置:SeaTunnel 3.0 暴露/metricsendpoint(JetMX 格式),Prometheus 可以直接 scrape。


11.2 Zeta Engine 核心监控指标

SeaTunnel Web UI 的底层数据来自 Zeta Engine 的 Metrics 系统。以下是运维最关心的10 个核心指标:

指标含义正常范围告警阈值
source.data.receivedSource 每秒接收数据量按 Source 吞吐< 预期吞吐 50%
sink.data.sentSink 每秒发送数据量≈ source.data.received(无丢数)< source 80%
checkpoint.durationCheckpoint 耗时< 10s(流作业)> 60s
checkpoint.success_rateCheckpoint 成功率> 99%< 90%
checkpoint.sizeCheckpoint 大小按状态大小> Worker 内存 80%
pipeline.backpressurePipeline 背压0(无背压)> 50%
jmv.memory.usedJVM 堆内存使用< 70%> 85%
pipeline.thread.activePipeline 活跃线程数按并行度 × 线程池大小> 线程池上限 90%
sink.flush.latencySink flush 延迟< 100ms> 1s
cdc.consumer.lagCDC 消费延迟(MySQL GTID/PG LSN)< 10s> 60s

11.2.1 CDC Consumer Lag 监控

CDC 场景最关键的延迟指标——Kafka Offset Lag / MySQL GTID Lag / PG LSN Lag。SeaTunnel CDC Source 自动暴露:

Lag 计算: MySQL: MySQL SHOW MASTER STATUS → Executed_Gtid_Set - CDC Source 的最新 GTID PG: pg_current_wal_lsn() - CDC Source 的最新 LSN Kafka: kafka-consumer-groups.sh --describe → LAG 列

车联网 CDC 告警阈值:

场景正常 Lag告警阈值
实时看板 CDC< 5s> 30s
湖仓 CDC< 10s> 60s
大表初始化同步允许小时级> 24h(初始化 24h 未完成)

11.2.2 Sink Flush 延迟监控

Sink flush 延迟是衡量"数据从 Source 到 Sink 可见"的端到端延迟:

端到端延迟 = Source 接收时间 → Sink flush 完成时间 = Kafka lag(Source 到 SeaTunnel)+ SeaTunnel 处理延迟 + Sink flush 延迟

各 Sink flush 延迟典型值:

Sinkflush 延迟说明
Doris Sink (2PC)1~5sStream Load preCommit + commit
Doris Sink (非 2PC)1~2s直接 append
Paimon Sink2~10sCheckpoint 触发 commit
Kafka Sink< 100msProducer batch 发送
ClickHouse Sink1~3sHTTP 批量写入
Fluss Sink< 1sFlink Runtime 写入

11.3 Checkpoint 调优

Checkpoint 是 Exactly-Once 的核心保障——快照越大、时间越长,Checkpoint 越容易超时。SeaTunnel Zeta Engine 的 Checkpoint 机制和 Flink 不同(Chandy-Lamport + Pipeline 级隔离),调优策略也有差异。

11.3.1 Checkpoint 四件套参数

参数含义默认生产推荐
checkpoint.intervalCheckpoint 间隔无(只设 checkpoint.timeout 则不做 Checkpoint)60000(60s)
checkpoint.timeout单次 Checkpoint 超时-300000(5min)
checkpoint.min-pause两次 Checkpoint 间最小暂停010000(10s,避免连续 Checkpoint 打爆 Sink)
checkpoint.max-concurrent最大并发 Checkpoint 数11(Zeta Pipeline 级隔离,并发 Checkpoint 没必要)

11.3.2 Zeta Engine Checkpoint vs Flink Checkpoint

维度Zeta Engine CheckpointFlink Checkpoint
隔离级别Pipeline 级(一个作业多条 Pipeline 各自 Checkpoint)Job 级(整个作业一起 Checkpoint)
状态存储Worker 本地内存 + Master 元数据Flink State Backend(Heap/RocksDB/ForSt + External Storage)
Chandy-Lamport✓(Barrier 穿过数据流不暂停)✓(Barrier 机制相同)
外部依赖不需要 HDFS/S3(Zeta 无外部状态存储)需要 HDFS/S3 存 Checkpoint 快照
恢复方式从上次 Checkpoint 继续,Pipeline 级可单独恢复整作业从 Savepoint/Checkpoint 恢复
持久化进程内,Worker 挂了 Checkpoint 丢(靠 job.retry.times 重试)持久化到外部存储,进程挂了不丢

Zeta Engine Checkpoint 硬约束:Worker 进程 Crash → 本地状态丢失 → 作业从上次 Checkpoint整体重试(不是 Pipeline 级)。Pipeline 级容错是运行时隔离(一个 Pipeline 挂了其他继续),不是崩溃恢复隔离(Worker Crash 后同一条作业的所有 Pipeline 一起恢复)。

11.3.3 Checkpoint 调优决策树

图 11-2 Checkpoint 调优决策树 Checkpoint 成功率低? ├── Checkpoint #1: SUCCESS (50s) │ Checkpoint #2: FAILED (timeout 300s) │ → 问题:Sink flush 太慢(Doris 2PC preCommit 超时) │ → 调优:增大 checkpoint.timeout 或减小 checkpoint.interval │ ├── Checkpoint #1: SUCCESS (120s) │ Checkpoint #2: SUCCESS (110s) │ → 问题:Checkpoint 间隔太短,Sink 还没刷完又来了新 Checkpoint │ → 调优:增大 checkpoint.min-pause(≥ 10s) │ └── Checkpoint #1: SUCCESS (5s) Checkpoint #2: SUCCESS (4s) Checkpoint #3: SUCCESS (5s) → 问题:Checkpoint 正常但频率太高 → 调优:增大 checkpoint.interval(比如 60s → 120s)

11.3.4 Checkpoint 超时常见原因

原因排查方法解法
Sink flush 太慢Doris 2PC preCommit / Paimon commit 卡住减小 Sink batch.size / 增大 checkpoint.timeout
Pipeline 背压Web UI 看 pipeline.backpressure增大 Source/Sink parallelism
CDC 初始化扫描大表MySQL-CDC initial mode 扫 10 亿行增大 checkpoint.timeout / 用 snapshot.split.size 切分
Worker GC 频繁看 Worker JVM 日志 Full GC增大 Worker 堆内存 / 启用 G1GC
多表同步 Pipeline 太多10 张表 × 每条 Pipeline Checkpoint拆作业(按业务域分组)

11.3.5 job.retry.times 累积计数器

env { job.retry.times = 5 # 总重试次数(累积,不是每次 Checkpoint 后重置) job.retry.interval = "10s" # 重试间隔 }

官方硬约束:job.retry.times是累积计数器——作业每次失败 +1,成功重启后不重置。只有 Zeta Master failover(整个 Master 重启)才会重置。

场景:作业失败 → 自动重试(retry_count=1)→ 又失败(retry_count=2)→ ... → 第 5 次失败 → 作业标记 FAILED 此时手动修复问题 → 重启作业 → retry_count 继续从 5 计数(不重置!)→ 直接 FAILED 正确做法:手动重启后,应该把 job.retry.times 改大或手动清 retry_count

11.4 故障排查手册

本节覆盖5 类生产最常见故障,每类给"现象 → 根因 → 解法 → 验证"四步排查路径。

11.4.1 故障一:Checkpoint 持续超时

现象: Web UI 显示 Checkpoint #N FAILED (timeout after 300000ms) 日志:TimeoutException: Checkpoint #N timeout 排查路径: Step 1:Web UI → Metrics → checkpoint.duration(看是否逐渐变大) Step 2:看最近成功的 Checkpoint 耗时(比如 5s → 30s → 120s → 超时) Step 3:查 Sink 侧(Doris/Paimon)日志是否有写入卡顿 Step 4:查 Worker JVM 是否 Full GC 根因 Top 3: 1. Doris 2PC preCommit 卡住(Doris FE/BE 不稳定) 2. Paimon commit 慢(湖仓 Checkpoint 触发大量文件合并) 3. Worker Full GC(堆内存不足) 解法: - Doris:检查 FE/BE 健康度;暂时关闭 2PC(`sink.enable-2pc = false`)看是否超时消失 - Paimon:增大 checkpoint.interval 或调大 Worker 内存;临时禁用 compaction - Worker GC:增大 Worker 堆内存(seatunnel.yaml worker.memory) 验证: 重启作业 → 观察 Web UI Checkpoint History → 连续 3 次 Checkpoint SUCCESS

11.4.2 故障二:CDC Consumer Lag 持续增长

现象: Web UI → Metrics → cdc.consumer.lag 持续增长(从 5s → 30s → 60s → ...) MySQL SHOW MASTER STATUS → Executed_Gtid_Set 与 CDC Source GTID 差距越来越大 排查路径: Step 1:Source 侧吞吐是否下降(source.data.received ↓) Step 2:Sink 侧是否有写入瓶颈(sink.flush.latency ↑) Step 3:Worker 内存/CPU 是否打满 根因 Top 3: 1. Sink 写入慢(Doris/Paimon flush 瓶颈)→ 反压到 Source 2. Worker 资源不足(CPU/内存打满) 3. 大表初始化扫描(initial mode 扫 10 亿行) 解法: - Sink 瓶颈:增大 Sink parallelism / 调大 batch.size / 开启 batch.interval 定时 flush - Worker 资源:增大 Worker 内存 + 增大 Worker 数量 - 大表初始化:增大 snapshot.split.size / 用 incremental mode 跳过初始化 验证: 观察 cdc.consumer.lag 是否回落 → 最终 < 告警阈值

11.4.3 故障三:Schema Evolution 失败

现象: Web UI → Pipeline FAILED 日志:"Schema change event received but sink does not support DDL" 或 "Type mismatch" 排查路径: Step 1:Source 侧最近是否有 DDL(ALTER TABLE ...) Step 2:Sink 侧 schema_save_mode 是什么(CREATE_SCHEMA_WHEN_NOT_EXIST vs RECREATE_SCHEMA) Step 3:Source 侧 ddl.strategy 是什么(AUTO vs NONE) 根因 Top 3: 1. ddl.strategy = AUTO 但 Sink 不支持自动 DDL(Fluss/JDBC) 2. PG-CDC DROP COLUMN(PG-CDC 仅 ADD COLUMN) 3. Source 加列类型 Sink 不兼容(MySQL INT → Doris BIGINT 需 WITH_TYPE_CONVERSION) 解法(10.3.3 SOP): Step 1:Sink 侧手动 ALTER TABLE 对齐 Source schema Step 2:ddl.strategy 改成 NONE(推荐生产) Step 3:重启作业(NONE 策略跳过 DDL 事件) 验证: Web UI → Pipeline RUNNING + Checkpoint SUCCESS → 新列数据正常写入 Sink

11.4.4 故障四:Pipeline 级容错验证(Kill Doris BE)

现象: 双目标分发作业(Doris + Paimon)Kill Doris BE 预期:Doris Pipeline 回滚 + Paimon Pipeline 照常 实际:? 排查路径(4 步骤): Step 1:Kill Doris BE(模拟故障) Step 2:观察 Web UI → Pipeline-1(Doris) FAILED / Pipeline-2(Paimon) RUNNING ✓ Step 3:重启 Doris BE Step 4:Zeta 自动重试 Doris Pipeline(job.retry.times=5)→ 从上次 Checkpoint 继续 ✓ 结论: Pipeline 级容错验证通过!Doris BE 故障不影响 Paimon Pipeline

11.4.5 故障五:Zeta Master Failover

现象: Zeta Cluster 模式 Master 进程 Crash 预期:Follower Master 自动切换 Leader + 作业从上次 Checkpoint 恢复 排查路径: Step 1:Kill Leader Master Step 2:观察 Worker 日志 → "Master connection lost" → 连接新 Leader Step 3:新 Leader 从元数据恢复作业状态 → 从上次 Checkpoint 继续 硬约束: - Zeta Autonomous Cluster(去中心化):任意节点都能当 Leader - Follower Master 日志里看到 "Become Leader" - 作业 Checkpoint 状态存在 Master 元数据里,不是 Worker 本地 验证: Kill Master → 30s 内新 Master 接管 → 作业自动恢复 → Checkpoint SUCCESS

11.5 版本升级与回退

SeaTunnel 3.0 是从 2.3.13 大版本跨越,升级前必须评估Incompatible Changes(3.0 破坏性变更)。

11.5.1 3.0 破坏性变更清单(升级前必读)

#破坏性变更影响升级动作
1CDC nullable split空值列不再作为 split 列,避免静默丢数据审查所有 CDC 作业的 split 列是否含 NULL
2Connector 目录结构变更2.3.5+ 改到connectors/目录重新运行 install-plugin 脚本
3Fluss Sink 2.3.13 缺失2.3.13 无法使用 Fluss Sink升级后才可用
4Sink 动态表名${database_name}旧版本叫${database}批量替换所有 HOCON
5Kafka Sink producer.group-id 必填EXACTLY_ONCE 语义下必须唯一审查所有 Kafka Sink 的 group-id
6job.retry.times累积计数器手动重启后 retry_count 不重置升级后手动重启作业时注意

11.5.2 升级 SOP(2.3.13 → 3.0)

Step 1:评估窗口(1 周) - 列出所有正在运行的作业 HOCON - 逐条检查破坏性变更清单 - 确定哪些作业需要改 HOCON Step 2:准备新版本 # 下载 3.0 二进制包 wget https://archive.apache.org/dist/seatunnel/3.0.0/apache-seatunnel-3.0.0-bin.tar.gz tar -xzf apache-seatunnel-3.0.0-bin.tar.gz # 重新安装所有插件(3.0 插件目录结构变了) cd apache-seatunnel-3.0.0-bin ./bin/install-plugin.sh connectors/ # 迁移 seatunnel.yaml(保留 Worker/Master 内存配置) cp /old/seatunnel/conf/seatunnel.yaml ./conf/seatunnel.yaml Step 3:暂停所有作业(升级前) # SeaTunnel Web → Jobs → Stop All # 等所有作业 Checkpoint 完成后停止 Step 4:升级(滚动升级 Zeta Cluster) # 先升级 Follower Master → 再升级 Worker → 最后升级 Leader Master # 每个节点:停进程 → 替换二进制 → 启动 → 等加入集群 Step 5:HOCON 兼容性修正 # 修正 4:${database} → ${database_name} # sed -i 's/\${database}/\${database_name}/g' *.hocon Step 6:灰度启动作业 # 先启动 1 个低优先级作业 → 验证 → 再启动其他 Step 7:全量启动 + 验证 # SeaTunnel Web → Jobs → Start All # 验证所有作业 Checkpoint SUCCESS # 验证 CDC Consumer Lag 正常

11.5.3 回退预案

回退触发条件: 升级后任何作业 Checkpoint 持续超时 / Schema Evolution 失败率 > 10% / Zeta Master 频繁 Crash 回退步骤(15 分钟内完成): Step 1:Stop All Jobs Step 2:替换回旧版二进制(2.3.13) Step 3:Zeta Cluster 滚动回退(先 Leader → 再 Worker → 最后 Follower) Step 4:HOCON 兼容性修正回退(${database_name} → ${database}) Step 5:Start All Jobs Step 6:验证所有作业恢复正常 回退风险: - Zeta Engine 无外部状态存储,回退后从上次 Checkpoint 继续 - 回退期间数据不丢(Source 侧有 offset/GTID/LSN)

11.5.4 插件兼容性

3.0 的 Connector 插件 API 有变更——2.3.13 的 jar 不能直接在 3.0 用,必须重新运行install-plugin.sh。如果有自定义 Connector,需要用 3.0 的 API 重新编译。


11.6 生产运维 SOP

11.6.1 监控面板配置(Prometheus + Grafana)

# seatunnel.yaml 里开启 Metrics seatunnel: engine: metrics: enabled: true reporter: prometheus prometheus: port: 8802 # Prometheus scrape endpoint
# Prometheus scrape 配置scrape_configs:-job_name:'seatunnel-worker'static_configs:-targets:['worker1:8802','worker2:8802','worker3:8802']-job_name:'seatunnel-master'static_configs:-targets:['master1:8801']

11.6.2 告警阈值配置

告警项条件级别动作
Checkpoint 超时连续 3 次 FAILEDP1立即介入
Checkpoint 成功率< 90%P21h 内介入
CDC Consumer Lag> 60sP21h 内介入
Pipeline 背压> 80% 持续 5minP2增大 parallelism
Worker GCFull GC > 10s / 持续 1minP3增大堆内存
JVM 内存> 85%P3扩容 Worker
Zeta MasterCrashP130s 内新 Master 接管
Doris FE/BECrashP1恢复后触发 Pipeline 级容错

11.6.3 日终对账 SOP

每天凌晨 2:00 执行: Step 1:Doris vs MySQL 对账(车联网车辆档案表) SELECT COUNT(*) FROM vehicle_db.dws_vehicles_real WHERE update_time >= DATE_SUB(NOW(), INTERVAL 24 HOUR) # 对比 MySQL vehicle_db.vehicles 24h 内变更行数 # 差异 > 1% → 告警 Step 2:Paimon vs MySQL 对账 # Flink SQL 查 Paimon 24h 内快照数 # 对比 MySQL CDC 24h GTID 变更数 Step 3:CDC Consumer Lag 日终巡检 # 所有 CDC 作业 lag 应 < 30s # 大表初始化作业 lag 应 < 24h Step 4:Checkpoint 成功率日终统计 # 所有作业 Checkpoint 成功率应 > 99% # 低于 99% → 排查超时原因

11.6.4 升级窗口

升级时间:周六凌晨 1:00 ~ 3:00(业务低峰) 准备工作: - 升级方案评审(1 周前) - 破坏性变更逐条验证(1 周前) - 回退预案评审(升级前 1 天) - 灰度作业准备(升级前 1 天) 升级流程: - 1:00 Stop All Jobs - 1:05 滚动升级 Zeta Cluster - 1:20 HOCON 兼容性修正 - 1:25 灰度启动 1 个作业 → 验证 - 1:40 全量启动 + 验证 - 2:00 日终对账 - 2:30 确认正常 → 升级完成 - 2:30 ~ 3:00 观察期 → 无异常则关闭升级窗口

工程要点

  1. Zeta Engine 无外部状态存储:不需要 HDFS/S3 存 Checkpoint;Worker 挂了状态丢,靠 job.retry.times 重试。
  2. Pipeline 级容错 = 运行时隔离 ≠ 崩溃恢复隔离:运行时一个 Pipeline 挂了其他继续;Worker Crash 后同作业所有 Pipeline 一起恢复。
  3. job.retry.times 累积计数器:手动重启后 retry_count 不重置;只有 Zeta Master failover 才重置。
  4. Checkpoint 四件套:interval=60000 + timeout=300000 + min-pause=10000 + max-concurrent=1(Zeta 推荐)。
  5. Checkpoint 超时 Top 3 原因:Sink flush 太慢 / Pipeline 背压 / Worker Full GC。
  6. CDC Consumer Lag 告警阈值:实时看板 CDC > 30s / 湖仓 CDC > 60s / 大表初始化 > 24h。
  7. Sink Flush 延迟典型值:Doris 2PC 1~5s / Doris 非 2PC 1~2s / Paimon 2~10s / Kafka < 100ms。
  8. 3.0 破坏性变更 Top 3:CDC nullable split / Connector 目录结构变 / Fluss Sink 2.3.13 缺失。
  9. Sink 动态表名 3.0 改了${database}→${database_name}:批量替换所有 HOCON。
  10. Kafka Sink producer.group-id EXACTLY_ONCE 必须唯一:重复会回滚前一个作业事务。
  11. Zeta Autonomous Cluster 去中心化:任意节点都能当 Leader;Master Crash 30s 内新 Leader 接管。
  12. SeaTunnel Web 3.0 新增 Pipeline 级状态视图:多 Pipeline 独立成功/失败状态可视化。
  13. Prometheus + Grafana 监控:seatunnel.yaml 开 metrics.reporter=prometheus → 8802 端口 scrape。
  14. 回退风险:Zeta 无外部状态存储但 Source 有 offset/GTID/LSN:回退后从上次 Checkpoint 继续,数据不丢。
  15. 插件兼容性:3.0 API 变更:2.3.13 的 Connector jar 不能直接在 3.0 用,必须重新 install-plugin。
  16. 升级窗口:周六凌晨 1:00 ~ 3:00:滚动升级 Zeta Cluster + 灰度启动 1 个作业验证。
  17. Schema Evolution 推荐 NONE + 手动 DDL SOP:比 AUTO 更可控。
  18. 多表同步 ≤ 10 张表/作业:超过拆作业。
  19. Doris FE/BE Crash → Pipeline 级容错自动恢复 Doris Pipeline:Paimon Pipeline 不受影响继续写。
  20. Worker GC 阈值:Full GC > 10s / 持续 1min → 告警:增大 Worker 堆内存或启用 G1GC。

本章小结

  • ✓ SeaTunnel Web 监控 3.0 新特性(Pipeline 级状态视图 + Checkpoint 可视化 + RowKind 柱状图)+ REST API;
  • ✓ Zeta Engine 10 个核心监控指标(含 CDC Consumer Lag + Sink Flush 延迟)+ Prometheus/Grafana 对接;
  • ✓ Checkpoint 调优四件套 + Zeta vs Flink Checkpoint 对比 + 决策树 + 超时 Top 3 原因 + job.retry.times 累积计数器;
  • ✓ 5 类故障排查手册(Checkpoint 超时 / CDC Lag / Schema Evolution / Pipeline 级容错验证 / Zeta Master Failover);
  • ✓ 3.0 破坏性变更清单 + 升级 SOP(7 步)+ 回退预案(15 分钟)+ 插件兼容性;
  • ✓ 生产运维 SOP(监控面板 + 告警阈值 8 项 + 日终对账 4 步 + 升级窗口)。

下章预告:第 12 章端到端综合实战——把 1~11 章所学拼成一台完整的车联网实时湖仓。从需求定义 → 架构设计 → 数据分层 → 九份交付代码 → 验收四线 → 故障演练 → 总结回顾。和前作 Iceberg 第 18 章、Paimon 版综合实战保持一致的结构。


官方参考资料

资料地址说明
Zeta Engine Abouthttps://seatunnel.apache.org/docs/3.0.0/zeta/Zeta Engine 架构 + 无外部依赖 + Autonomous Cluster
Incompatible Changeshttps://seatunnel.apache.org/docs/3.0.0/incompatible-change/CDC nullable split + Connector 目录变更
Engines Overviewhttps://seatunnel.apache.org/docs/3.0.0/engines/Zeta/Flink/Spark 三引擎能力边界
CDC Production Cookbookhttps://seatunnel.apache.org/docs/connectors/cdc-production-cookbook/CDC 生产实战配方
Checkpoint Mechanismhttps://seatunnel.apache.org/docs/3.0.0/zeta/checkpoint/Chandy-Lamport + Pipeline 级隔离

版本取证说明

  1. Zeta Engine Checkpoint 无外部依赖:Zeta Engine About 原文 “No external dependencies required for state storage”。
  2. Pipeline 级容错 ≠ 崩溃恢复隔离:Zeta Engine Checkpoint 页面 “Pipeline-level fault tolerance is for runtime faults, not process crashes”(进程 Crash 后同作业所有 Pipeline 一起恢复)。
  3. job.retry.times 累积计数器:官方文档 + 生产实测(手动重启后 retry_count 不重置,只有 Master failover 才重置)。
  4. Sink 动态表名 3.0${database_name}替换${database}:Incompatible Changes 条目 + 所有 Sink Connector 页面参数说明。
  5. Zeta Autonomous Cluster 去中心化:Zeta Engine About “Autonomous mode: Any node can become a leader”。
  6. 3.0 破坏性变更 6 项:Incompatible Changes 页面原文(CDC nullable split / Connector 目录 / Fluss Sink 缺失 / 动态表名 / producer.group-id / job.retry.times)。
  7. SeaTunnel Web 3.0 新增 Pipeline 级状态视图:SeaTunnel Web 页面 + 生产实测(多 Pipeline 独立成功/失败可视化)。

实操清单

序号操作方式要点
1SeaTunnel Web Pipeline 级状态视图Zeta Cluster + 双目标分发作业 + Kill Doris BEDoris Pipeline 回滚 + Paimon 照常
2Prometheus + Grafana 监控seatunnel.yaml 开 metrics + Prometheus scrape + Grafana dashboard10 个核心指标可视化
3Checkpoint 调优四件套env { checkpoint.interval=60000 timeout=300000 min-pause=10000 max-concurrent=1 }Zeta 推荐配置
4job.retry.times 累积计数器验证作业失败 → 手动重启 → 看 retry_count不重置,只有 Master failover 才重置
5Checkpoint 超时注入(Sink flush 卡住)Doris FE/BE 模拟故障 + 看 Checkpoint History连续 FAILED
6CDC Consumer Lag 监控MySQL SHOW MASTER STATUS + CDC Source GTID差距 > 60s 告警
7Zeta Master Failover 验证Kill Leader Master + 看 30s 内新 Master 接管作业自动恢复
8Schema Evolution NONE + 手动 DDL SOPSource ALTER ADD + Sink 手动 ALTER + NONE 策略作业自动继续
92.3.13 → 3.0 升级破坏性变更逐条验证6 项变更 + 每条验证升级前必做
10滚动升级 Zeta ClusterFollower Master → Worker → Leader Master每个节点替换二进制
11回退预案演练升级后 Stop All + 替换旧版 + 启动15 分钟内完成
12Pipeline 背压监控Web UI → Metrics → pipeline.backpressure> 80% 持续 5min 告警
13Worker Full GC 监控JVM 日志 + seatunnel.yaml worker.memory> 10s 告警
14日终对账 SOP 执行凌晨 2:00 + Doris/Paimon vs MySQL差异 > 1% 告警
15升级窗口观察期1:00~3:00 业务低峰 + 灰度验证无异常关闭窗口
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进