我想问下 你们 flink on k8s 的 检查点 都存在哪了 ,单独安的 hdfs 吗?
在使用 Flink on Kubernetes 集群时,Flink 会使用持久化存储来保存检查点。具体的存储位置取决于您的设置。您可以在 Flink 配置文件中设置检查点存储路径。
如果您选择了 HDFS 作为持久化存储,那么检查点会被保存在 HDFS 上的某个目录下。如果没有选择 HDFS,则检查点会被保存在 Kubernetes 所属的存储设备上。
例如,您可以在 Flink 配置文件中设置如下参数来指定检查点存储路径:
state.checkpoints.dir=hdfs://namenode:port/checkpoints/
当然,也可以使用其他类型的持久化存储,如 NFS、Google Cloud Storage 或 Amazon S3 等。
如果您希望使用外部的 HDFS 集群,您需要配置一个 Kubernetes 资源来指向外部 HDFS 集群,并且需要提供适当的安全认证信息。具体操作请参考 Flink 官方文档或社区讨论组。
在Flink on K8s中,检查点(Checkpoint)是实现容错机制的核心功能,它能够根据配置周期性地基于各个Operator的状态来生成Snapshot快照,从而将这些状态数据定期持久化存储下来。当Flink程序一旦意外崩溃时,重新运行程序时可以有选择地从这些Snapshot进行恢复,从而修正因为故障带来的程序数据状态中断。在Flink 1.13版本及以后,如果您没有显示指定状态后端,Flink会默认使用轻量级的HashMapStateBackend作为其状态后端。
具体来说,当每隔一段时间检查点保存操作被触发时,就把每个任务当前的状态复制一份,按照一定的逻辑结构放在一起持久化保存起来,就构成了检查点。然而,对于具体的存储位置,这取决于您的配置。例如,之前的版本采用HDFS作为状态快照(Checkpoint、Savepoint)的存储地址,但是由于仅使用了其HDFS作为状态快照存储地址,且Hadoop框架较重,在K8s集群中占用大量资源,因此现在更多的考虑将其替换为更轻量级的分布式文件系统——NFS。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。