Flink 任务维护
savepoint 的使用
触发savepoint
bin/flink savepoint :jobId [:targetDirectory] -yid :yarnAppId
示例
bin/flink savepoint b5d4b1bf767efa4925d80a19930638d0 -yid application_1701935034030_0003
执行完以后打印如下
Waiting for response...
Savepoint completed. Path: hdfs://bigdatacluster/user/flink/savepoints/savepoint-b5d4b1-07324c8c9c3d
You can resume your program from this savepoint with the run command.
从savepoint恢复
bin/flink run -s :savepointPath [:runArgs]
示例
bin/flink run -s hdfs://bigdatacluster/user/flink/savepoints/savepoint-b5d4b1-07324c8c9c3d [:runArgs]
doris 同步案例
./bin/flink run -t yarn-per-job \
-Dexecution.checkpointing.interval=10s \
-Dparallelism.default=1 \
-c org.apache.doris.flink.tools.cdc.CdcTools \
lib/flink-doris-connector-1.16-1.5.0.jar \
mysql-sync-database \
--database test_db \
--mysql-conf hostname=xxx \
--mysql-conf port=3306 \
--mysql-conf username=xxx \
--mysql-conf password="xxx" \
--mysql-conf database-name=xx \
--including-tables "xx|xx" \
--sink-conf fenodes=xxx:8030 \
--sink-conf username=test \
--sink-conf password=test \
--sink-conf jdbc-url=jdbc:mysql://xxx:9030 \
--sink-conf sink.label-prefix=prelabel_5 \
--table-conf replication_num=3 \
--mysql-conf server-time-zone=UTC \
--mysql-conf scan.startup.mode=latest-offset
--excluding-tables "order_dhl.*|cache_oop|calendar" \
# 如下可以看到,没有用 --mysql-conf scan.startup.mode=latest-offset 他也没有全量读取,说明断点续传成功了。在flinkui的checkpoint也能看到last savepoint的信息。
./bin/flink run -s hdfs://bigdatacluster/user/flink/savepoints/savepoint-b5d4b1-07324c8c9c3d -t yarn-per-job \
-Dexecution.checkpointing.interval=10s \
-Dparallelism.default=1 \
-c org.apache.doris.flink.tools.cdc.CdcTools \
lib/flink-doris-connector-1.16-1.5.0.jar \
mysql-sync-database \
--database test_db \
--mysql-conf hostname=xxx \
--mysql-conf port=3306 \
--mysql-conf username=xxx \
--mysql-conf password="xxx" \
--mysql-conf database-name=xx \
--including-tables "xx|xx" \
--sink-conf fenodes=xxx:8030 \
--sink-conf username=test \
--sink-conf password=test \
--sink-conf jdbc-url=jdbc:mysql://xxx:9030 \
--sink-conf sink.label-prefix=prelabel_5 \
--table-conf replication_num=3 \
--mysql-conf server-time-zone=UTC
--excluding-tables "order_dhl.*|cache_oop|calendar" \