我正在使用Apache Flink 1.10.0从RabbitMQ提取数据流,现在我正在内存中使用默认检查点配置。现在要使其恢复,当任务管理器重新启动时,我需要将状态和检查点存储在文件系统中,所有演示都应使用“hdfs:// namenode:4000 / ....”,但是现在我没有HDFS集群,我的Apache Flink在kubernetes集群中运行,如何将我的检查点存储在文件系统中?

我阅读了Apache Flink的docs并告诉我它的支持:

  • 一个持久(或持久)数据源,可以在一定时间内重播记录。此类消息源的示例是持久消息队列(例如,Apache Kafka,RabbitMQ,Amazon Kinesis,Google PubSub)或文件系统(例如,HDFS,S3,GFS,NFS,Ceph等)。
  • 状态的持久存储,通常是分布式文件系统(例如HDFS,S3,GFS,NFS,Ceph等)。

  • 如何配置flink以使用NFS存储检查点和状态?我从互联网上搜索,没有找到有关此解决方案的故事。

    最佳答案

    要将NFS用于Flink的检查点,您应该使用file: URI指定一个checkpoint directory,该URIt可从群集中的每个节点访问(作业管理器和所有任务管理器需要使用相同的URI进行访问)。

    因此,例如,您可以将NFS卷挂载在每台计算机上的/data/flink/checkpoints上,然后指定

    state.checkpoints.dir: file:///data/flink/checkpoints
    

    关于hadoop - 如何在NFS文件系统中存储Apache Flink检查点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61114468/

    10-16 05:24