在同一个 apache spark 集群上提交两个应用程序会在同一个 JVM 或不同的 JVM 上生成驱动程序进程

Posted

技术标签:

【中文标题】在同一个 apache spark 集群上提交两个应用程序会在同一个 JVM 或不同的 JVM 上生成驱动程序进程【英文标题】:Submitting two applications on same apache spark cluster spawns driver processes on same JVM or on different 【发布时间】:2017-06-06 11:37:46 【问题描述】:

我有一个问题。如果我在 yarn-client 模式下在同一个 spark 集群上提交两个应用程序,它会为同一 JVM 上的每个应用程序生成两个驱动程序进程,还是会为客户端主机上的每个驱动程序进程生成不同的 JVM?

另外,如果我以 yarn-cluster 模式在同一个 spark 集群上提交两个应用程序,它会为每个应用程序创建两个不同的应用程序主进程,然后这些主进程将处理不同 JVM 中的每个应用程序,或者只有一个应用程序主进程是为提交给 Spark 集群的所有应用程序创建,并且每个驱动程序进程在单个 JVM 中的这个主进程下运行?

【问题讨论】:

在 Apache-spark 中还有一种方法可以让我将多个应用程序提交到 spark 集群,并且它们的驱动程序进程在同一个 JVM 上运行,这样我就可以在它们之间共享单例 spark 上下文?跨度> 【参考方案1】:

在客户端模式下,每个应用程序将使用在其自己的本地 JVM 中运行的单独驱动程序进程。此外,每个应用程序都有自己的远程主机,负责请求资源。

【讨论】:

感谢您的回复。因此,在集群模式的情况下,如果我提交两个应用程序,那么在这种情况下,两个驱动程序进程将在具有自己的 JVM 的单独应用程序主进程中创建,或者两个驱动程序进程将在同一 JVM 下运行的单个应用程序主进程中创建。 ? 在这种情况下,将创建两个应用程序主控,每个主控都有自己的驱动程序。

以上是关于在同一个 apache spark 集群上提交两个应用程序会在同一个 JVM 或不同的 JVM 上生成驱动程序进程的主要内容,如果未能解决你的问题,请参考以下文章

Apache Spark 2.2.0 中文文档 - 集群模式概述 | ApacheCN

Spark集群任务提交流程----2.1.0源码解析

在spark集群上可以同时运行多个提交的应用程序吗

使用 Apache Spark 提交 Python 应用程序

将 Spark 作业提交到 Spark 集群

如何从 IntelliJ IDEA 向远程 Spark 集群提交代码