当前位置: 首页 > 知识库问答 >
问题:

为纱线簇中的Flink作业设置Flink检查点的路径动态

松雅昶
2023-03-14

我用纱线做Flink的工作。对于每个Flink作业,我都会创建一个检查点。

我提交了一份在我的纱线集群中运行的Flink作业。我有一个轮询作业,它检查一个作业是否在纱线上失败并重新启动它。再次提交作业时,纱线会为此Flink作业创建一个新的application\u id。如何配置重新提交的Flink作业以使用重新启动的Flink作业的检查点。

我已经设置了conf的状态。保存点。目录=hdfs://localhost:9000/checkpoint/在flink-conf.yaml中`

创建Flink作业时,stream ExecutionEnvironment.setStateBackend(new FsStateBackend("hdfs://localhost:9000/checkpoint/uuid-job-1 "));

当我进行此设置时,检查点保存在conf文件中指定的路径中(hdfs://localhost:9000/checkpoint/)并且不在创建Flink作业时设置的路径中。

任何帮助都将不胜感激。谢谢

共有1个答案

董胡媚
2023-03-14

不幸的是,你不能从旧的检查点开始新的工作。你可以做的是使用外部化的检查点。闪烁的一个缺点

邮件列表线程中的一个附加说明:

好消息是,Flink 1.5将稍微修改外部化检查点的工作方式:基本上,所有检查点现在都可以被视为外部化,元数据将存储在检查点的根目录中,而不是所有作业的一个全局目录中。通过这种方式,外部化检查点的元数据驻留在每个作业的检查点目录中,从该目录恢复应该相当简单。

 类似资料:
  • 我的工作流程工作原理如下: src[Kafka]- 但我的工作是运行精细的数据完美地流向Kafka和MySQL,但它在检查点失败,附加图像相同。 Ps :目前我已经禁用了检查点,但是当我使用相同的属性启用时,它会失败

  • 我正在使用Apache Flink RabbitMQ堆栈。我知道有机会手动触发保存点并从中还原作业,但问题是Flink会在成功的检查点之后确认消息,如果要使保存点和还原状态为,则会丢失上次成功的保存点和上次成功的检查点之间的所有数据。有没有办法从检查点恢复作业?这将解决在不可重放数据源(如rabbitmq)的情况下丢失数据的问题。顺便说一句,如果我们有检查点及其所有开销,为什么不让用户使用它们呢?

  • 当我没有配置java home时,我提交了如下作业错误

  • 我们有一些在纱线上运行的flink作业。我们想将flink作业日志上传到ELK以简化调试/分析。目前flink任务管理器将日志写入。我们希望它写入没有嵌套结构的目录。 我试过使用env。日志目录:/mnt/flink。使用此设置时,无法正确传递配置。

  • 下面是我对Flink的疑问。 我们可以将检查点和保存点存储到RockDB等外部数据结构中吗?还是只是我们可以存储在RockDB等中的状态。 状态后端是否会影响检查点?如果是,以何种方式? 什么是状态处理器API?它与我们存储的保存点和检查点直接相关吗?状态处理器API提供了普通保存点无法提供的哪些额外好处? 对于3个问题,请尽可能描述性地回答。我对学习状态处理器API很感兴趣,但我想深入了解它的应

  • 我正在检查Flink Sql Table与kafka连接器是否可以在EXACTLY_ONCE模式下执行,我的方法是创建一个表,设置合理的检查点间隔,并在event_time字段上使用简单的翻滚函数,最后重新启动我的程序。 以下是我的详细进度: 1:创建一个Kafka表 2:启动我的 Flink 作业,如下所示配置 3:执行我的sql 如我们所见,翻转窗口间隔为5分钟,检查点间隔为30秒,每个翻转窗