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

TaskManager的Flink state后端

林华皓
2023-03-14

我有一个Flink v1.2设置,在它自己的VM中有1个JobManager、2个TaskManager。我将状态后端配置为文件系统,并在上述每个主机的情况下将其指向本地位置(state.backend.fs.checkpointdir:file:///home/ubuntu/Prototype/flink/flink-checkpoints)。我已将parallelism设置为1,每个TaskManager有1个插槽。然后,我在JobManager上运行一个事件处理作业,将其分配给TaskManager。我杀死了运行作业的TaskManager,在失败的TaskManager上尝试了几次失败后,Flink尝试在剩余的TaskManager上运行作业。此时,它再次失败,因为它找不到相应的检查点/状态:java。io。FileNotFoundException:/home/ubuntu/Prototype/flink/flink checkpoints/56C409681BAAF205BC1BA6CBE9F8091/chk-14/46f6e71d-ebfe-4b49-bf35-23c2e7f97923(无此类文件或目录)

文件夹/home/ubuntu/Prototype/flink/flink checkpoints/56C409681BAAF205BC1BA6CBE9F8091只存在于我杀死的TaskManager上,而不存在于另一个TaskManager上。

我的问题是,如果我想要上述功能,我应该在所有任务管理器上为检查点/状态设置相同的位置吗?

谢谢

共有1个答案

乐城
2023-03-14

您使用的检查点目录需要在构成Flink集群的所有机器之间共享。通常这类似于HDFS或S3,但可以是任何共享文件系统。

 类似资料:
  • 我是flink的新手,我正在实现一个模式识别模块(不使用CEP实现模式匹配),该模块将从EventHub主题读取json流,并在模式匹配的情况下推送到另一个EventHub主题。我的模块功能如下 > 从Eventhub主题接收JSON有效负载 我正在使用RichSourceFunction,它将从API读取模式并发送到广播流 我正在使用Flink BroadcastProcessFunction根

  • 我在HA模式下配置了Flink,如下所述: 我想测试容错性,因此我做了以下工作: 设置具有2个JobManager和1个TaskManager的Flink群集 在任务管理器上启动流式处理作业 杀死活动的作业管理器(以模拟崩溃) 领导人选举如期举行 但注意到任务管理器正在重新连接到新的作业管理器。它只是每10秒尝试重新连接到前一个领导者 在此处粘贴任务管理器日志: 重新启动任务管理器没有帮助 重新启

  • 我有一个并行度=256的运算符在128个任务管理器上运行。每次当我遇到检查点失败时,它都发生在该运算符的同一个子任务上,例如总是子任务129卡住并阻止检查点。我想通过检查子任务129运行的任务管理器的日志来了解这个子任务发生了什么。Flink中是否有方法将子任务id映射到相应的任务管理器?

  • 我有一个运行在400个TaskManager上的flink应用程序。在1小时的窗口时间内,我会更频繁地获得相同的密钥,比如说,在1500个唯一密钥中,有50个密钥会更频繁地出现。这使得很少有任务管理者单独处理的数量比其他人多。如果390个TaskManager每分钟处理50MB,那么其他10个TaskManager每分钟处理10GB。这使得系统速度非常慢。如果负载很高,我们可以与多个TaskMan

  • 我的目标是杀死Flink任务管理器,然后在Windows上重新启动它。这是刺激Flink中的错误所必需的,这样我就可以看到检查点的工作。我已经设法找到了任务管理器PID通过查找PID对它侦听的端口。所以杀死PID应该杀死taskManager,但是我找不到在windows上重启Flink taskManager的方法,因为taskManager脚本是一个外壳脚本。请帮助我在以下两个问题。 如何在W

  • 我正在尝试使用本机kubernetes运行flink集群。 下面是flink conf, 首先,JobManager和TaskManager成功启动,TM处理的事件很少。但在超时间隔之后,JM抛出如下所示的心跳错误,并将启动新的TaskManager。旧的任务管理器仍在运行,新的任务管理器在同一命名空间中启动。 无法解释这种行为。我确保检查TaskManager和jobmanager的内存,没有内