Flink 文档说:"当运行高可用性 YARN 集群时,我们不会运行多个 JobManager (ApplicationMaster( 实例,而只运行一个实例,该实例在发生故障时由 YARN 重新启动。然后下降到"高可用性:动物园管理员"下方。
我没有纱线的经验,但是如果 Yarn 负责重新启动并且我们只有一个 JobManager,为什么我们需要设置 zookeeper?或者这是资源管理器的动物园管理员?
为了确保"高可用性",通常建议使用基于 Zookeeper 的 YARN 实现。使用 YARN,只有一个 RessourceManager 实例运行,基于 Zookeeper 的实现为 RessourceManager 提供了高可用性,当活动实例崩溃时,允许将 RessourceManager 故障转移到另一个实例。
此实现的工作原理是将 RessourceManager 的当前内部状态存储在 Zookeeper 中。
来源 : Apache Zookeeper Essentials, Saurav Haloi
- YARN本身可以自动重新启动新的ApplicationMaster
容器,因为ApplicationMaster和JobManager在同一进程中运行,因此JobManager可以自动重新启动。
这里的 Zookeeper 用于恢复以前的关闭作业管理器的状态,例如检查点信息。