我正在阅读有关任务失败恢复的Flink官方文档:https://ci.apache.org/projects/flink/flink-docs-stable/dev/task_failure_recovery.html
据我了解,该文档告诉我们,如果某些任务由于某种原因失败,Flink可以借助Checkpoint机制来恢复它。
所以现在我还有两个问题:
如果TaskManager失败怎么办?据我了解,一项任务分配给一个或多个插槽,并且插槽位于一个或多个TaskManagers。阅读完上述文档后,我知道Flink可以恢复失败的任务,但是如果TaskManager失败,会发生什么? Flink也可以恢复吗?如果有故障的TaskManager可以恢复,恢复后分配给它的任务是否可以继续自动运行?
如果JobManager失败怎么办?如果JobManager失败,那么所有TaskManager也会失败吗?如果是这样,当我在Zookeeper的帮助下恢复JobManager时,所有TaskManager及其任务将继续自动运行吗?
答案 0 :(得分:0)
在纯独立群集中,如果任务管理器死亡,那么如果您正在运行备用任务管理器,则将使用它。否则,作业管理器将等待新的任务管理器神奇地出现。做到这一点取决于您。另一方面,如果您正在使用YARN,Mesos或Kubernetes,则集群管理框架将确保确保有足够的TM。
对于Job Manager故障,在独立群集中,您应该运行备用Job Manager,并配置Zookeeper进行领导者选举。使用YARN,Mesos和Kubernetes,您可以根据需要让集群框架处理重新启动作业管理器或运行备用服务器的情况,但是在两种情况下,您仍将需要Zookeeper为作业管理器的元数据提供HA存储。
任务管理器可以在作业管理器失败/恢复的情况下幸免。不必重新启动作业。
https://ci.apache.org/projects/flink/flink-docs-stable/ops/jobmanager_high_availability.html。