更新时间:2024-11-29 GMT+08:00

提交Flink on Hudi作业规范

提交作业参数说明

表1 提交作业参数

参数名称

参数描述

建议值

说明

-c

指定主类名。

根据实际填写

必填

-ynm

Flink Yarn作业名称。

根据实际填写

必填

execution.checkpointing.interval

CheckPoint触发间隔(毫秒)。

60000

必填,通过-yD添加

execution.checkpointing.timeout

CheckPoint超时时长(分钟),默认值:30min。

30min

必填,通过-yD添加

parallelism.default

作业并行度,例如join算子,默认值:1。

根据实际填写

选填,通过-yD添加

table.exec.state.ttl

Flink状态TTL(join ttl),默认值:0。

根据实际填写

必填,通过-yD添加

提交作业开发建议

  • CheckPoint间隔时长应该大于CheckPoint执行时长

    CheckPoint执行时长与CheckPoint的数据量相关,数据量越大耗时越大。

    CheckPoint执行时长与分区数量相关,分区数量越大耗时越大。

  • CheckPoint超时时长应该大于CheckPoint间隔时长

    CheckPoint间隔时长是指多长时间触发一次CheckPoint操作,启动CheckPoint后执行时长超过CheckPoint超时时长后作业会执行失败。

  • CDC场景下Hudi读写表需要开启Changelog

    CDC场景下为保障Flink计算的准确,需要在Hudi表中保留+I、+U、-U、-D。所以同一个Hudi表在写入、流读时都需要开启Changelog。

  • COW类型的Hudi表适用于批量入湖场景

    COW表在写入时复制,仅使用parquet列式存储文件,写入过程中同步执行合并版本和重写被更新的文件。因此所占用的存储空间更小。但是COW表由于同步进行重写,数据更新代价更大,读取时延更高,因此不适合实时入湖场景。