我试图了解在以集群模式部署 Yarn 时 Spark 驱动程序是否是单点故障。因此,我想在此上下文中更好地了解有关 Spark 驱动程序的 YARN 容器的故障转移过程的内部情况。
我知道 Spark Driver 将在 Yarn Container 内的 Spark Application Master 中运行。如果需要,Spark Application Master 将向 YARN 资源管理器请求资源。但是,在 Spark Application Master(和 Spark 驱动程序)的 YARN 容器失败的情况下,我无法找到有关故障转移过程的足够详细信息的文档。
我试图找出一些详细的资源,可以让我回答与以下场景相关的一些问题:如果运行 Spark Application Master / Spark Driver 的 YARN 容器的主机在 1 小时内失去网络连接:
YARN 资源管理器是否使用另一个 Spark Application Master/Spark Driver 生成一个新的 YARN 容器?
在那种情况下(产生一个新的 YARN 容器),如果 Executors 中的至少 1 个阶段已经完成并在失败之前通知原始驱动程序,它是否会从头开始启动 Spark 驱动程序?persist() 中使用的选项在这里有什么不同吗?新的 Spark Driver 是否会知道 executor 已经完成了 1 个阶段?Tachyon 会在这种情况下提供帮助吗?
如果在原始 Spark Application Master 的 YARN 容器的主机中恢复网络连接,是否会触发故障回复过程?我猜这种行为可以通过 YARN 来控制,但是我不知道在集群模式下部署 SPARK 时的默认设置是什么。
如果您能指出一些文档/网页,我将非常感激,其中详细探讨了纱线集群模式下的 Spark 架构和故障转移过程。