flink-on-k8s的application模式怎么保存点重启大佬们有经验的吗 ,任务stop后pod都被直接清掉了
在Flink on Kubernetes中,可以使用Savepoints来保存Flink应用程序的状态,以便在重启后可以从上一次的状态继续执行。
1、在Flink应用程序中添加代码来触发保存点的创建。
env.enableCheckpointing(checkpointInterval);
env.getCheckpointConfig().setCheckpointingMode(CheckpointingMode.EXACTLY_ONCE);
env.getCheckpointConfig().setCheckpointTimeout(checkpointTimeout);
env.getCheckpointConfig().setMaxConcurrentCheckpoints(maxConcurrentCheckpoints);
env.getCheckpointConfig().setMinPauseBetweenCheckpoints(minPauseBetweenCheckpoints);
env.getCheckpointConfig().setPreferCheckpointForRecovery(preferCheckpointForRecovery);
env.getCheckpointConfig().setTolerableCheckpointFailureNumber(tolerableCheckpointFailureNumber);
2、在Flink on Kubernetes中配置Savepoints
spec:
template:
spec:
containers:
- name: taskmanager
env:
- name: FLINK_SAVEPOINTS_DIRECTORY
value: "s3://your-bucket-name/savepoints/"
- name: FLINK_SAVEPOINT_MODE
value: "EXTERNALIZED"
3、在重启应用程序时,可以使用以下命令来加载Savepoints:
./bin/flink run -s s3://your-bucket-name/savepoints/your-savepoint-file-name
通过restful或者KubernetesClusterDescriptor去触发savepoint 启动任务的时候SavepointConfigOptions.SAVEPOINT_PATH设置到flinkconf中就行。
此答案来自钉钉群“【2】Apache Flink China 社区”
可以查看如何原生的在 K8s 上运行 Flink https://developer.aliyun.com/article/766710
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。