我正在读Flink官方关于任务失败恢复的文件:https://ci.apache.org/projects/flink/flink-docs-stable/dev/task_failure_recovery.html
据我所知,这个doc告诉我们,如果某个任务由于某种原因失败,flink可以借助检查点机制来恢复它。
现在我还有两个问题:
如果taskmanager失败了怎么办?据我所知,一个任务分配给一个或多个槽,槽位于一个或多个TaskManager。在阅读了上面的文档之后,我知道flink可以恢复失败的任务,但是如果taskmanager失败了,会发生什么呢?Flink也能恢复吗?如果失败的taskmanager可以恢复,则分配给它的任务在恢复后是否可以继续自动运行?
如果jobmanager失败了怎么办?如果jobmanager失败了,所有taskmanager也会失败吗?如果是这样,当我在zookeeper的帮助下恢复jobmanager时,是否所有TaskManager及其任务都将继续自动运行?
1条答案
按热度按时间wj8zmpe11#
在一个纯独立的集群中,如果任务管理器死亡,那么如果您有一个备用任务管理器在运行,它将被使用。否则,作业管理器将等待新的任务管理器奇迹般地出现。实现这一切取决于你。另一方面,如果您使用的是yarn、mesos或kubernetes,集群管理框架将负责确保有足够的tms。
至于作业管理器失败,在独立集群中,您应该运行备用作业管理器,并配置zookeeper来进行领导者选举。使用yarn、mesos和kubernetes,您可以让集群框架处理重新启动作业管理器或运行备用(如您所愿),但无论哪种情况,您仍然需要zookeeper为作业管理器的元数据提供ha存储。
任务管理器可以在作业管理器失败/恢复情况下生存。作业不必重新启动。
https://ci.apache.org/projects/flink/flink-docs-stable/ops/jobmanager_high_availability.html.