Spark Application Master是否总是运行在EMR集群的master节点

Does Spark Application Master always run in the master node of EMR cluster or not

我有一个EMR集群(1主节点1核心节点),我提交的spark-application部署模式是cluster模式。

根据文档,我知道 Spark Application Master 中的 driver 运行 给定此部署模式,但 [=14= 将选择哪个节点(主节点或核心节点) ] 到 运行 Spark Application Master? 它总是master节点吗? 谢谢。

A​​pplication Master 永远不会 运行 在集群的主实例上运行(除了你 运行 没有核心实例的单个节点“集群”的边缘情况) .

A​​pplication Master 运行 在集群的随机 core/task 实例上。它 运行 在一个 YARN 容器中,因此它必须 运行 在一个正在 运行 连接 YARN NodeManager 的实例上。主实例 运行 是 YARN ResourceManager,core/task 个实例 运行 YARN NodeManager。

此外,驱动程序并不总是 运行 在 Application Master 进程中。事实上,默认情况下(意思是“客户端”deploy-mode)它在 Application Master 进程中 而不是 运行。在这种情况下,驱动程序(运行ning 在主实例上)和 Application Master(运行ning 在随机 core/task 实例上)是两个完全独立的东西。

如果您 运行 在“集群”deploy-mode 中启动(例如,通过将 --deploy-mode cluster 添加到 spark-submit args),然后并且只有这样驱动程序才会 运行 在 Application Master 中,它将在一个随机的 core/task 实例上。在这种情况下,主实例上唯一 运行ning 将是一个瘦包装进程,它轮询 YARN 中应用程序的状态 运行ning。