Checkpoints 的主要目的是为意外失败的作业提供恢复机制。
Savepoints的设计更侧重于可移植性和操作灵活性,尤其是在 job 变更方面。Savepoint 的用例是针对计划中的、手动的运维。例如,可能是更新你的 Flink 版本,更改你的作业图等等。
flink任务逻辑代码修改如何提交
在Apache Flink中,对任务逻辑代码进行修改并提交是一个涉及多个步骤的过程。以下是根据搜索结果提供的步骤和注意事项:
-
代码修改:
- 在开发环境中对Flink任务的逻辑代码进行修改。这可能包括更改数据处理逻辑、调整并行度、优化状态管理等。
-
单元测试和集成测试:
- 对修改后的代码进行彻底的测试,确保新的逻辑按预期工作。可以使用Flink提供的测试工具和框架进行测试。
-
构建和打包:
- 使用Maven或Gradle等构建工具将修改后的代码打包成JAR文件。确保所有依赖项都包含在内。
-
测试部署:
- 在测试环境中部署和运行打包后的JAR文件,以验证其在实际运行环境中的表现。
-
创建Savepoint:
- 如果需要从旧版本平滑过渡到新版本,可以在停止旧作业之前创建一个savepoint。
-
停止旧作业:
- 在生产环境中停止当前运行的Flink作业。如果之前创建了savepoint,可以使用它来恢复状态。
-
提交新作业:
- 使用Flink命令行工具或Flink客户端提交新的JAR文件。可以使用以下命令提交作业:
./bin/flink run -c your.main.Class your-application.jar
- 如果使用savepoint恢复状态,可以添加
-s
参数:./bin/flink run -c your.main.Class -s savepointPath your-application.jar
- 使用Flink命令行工具或Flink客户端提交新的JAR文件。可以使用以下命令提交作业:
-
监控和验证:
- 在新作业启动后,密切监控其性能和行为,确保一切正常。可以使用Flink的Web UI来监控作业状态和指标。
-
文档更新:
- 更新相关的开发文档和操作文档,以反映代码变更和新的部署信息。
-
回滚计划:
- 准备一个回滚计划,以防新作业出现问题。如果新作业运行不稳定,可以使用savepoint快速回滚到旧版本。
在整个过程中,确保遵循最佳实践,如代码审查、持续集成和持续部署(CI/CD)等,以确保代码质量和部署的可靠性。同时,保持与团队成员的沟通,确保每个人都了解变更的内容和影响。
参考:
https://nightlies.apache.org/flink/flink-docs-release-1.20/zh/docs/ops/state/checkpoints_vs_savepoints/