Apache spark 在纱线上使用火花时,火花执行器和纱线容器之间的关系是什么

Apache spark 在纱线上使用火花时,火花执行器和纱线容器之间的关系是什么,apache-spark,yarn,Apache Spark,Yarn,在纱线上使用火花时,火花执行器和纱线容器之间的关系是什么? 例如,当我设置executor memory=20G和纱线容器memory=10G时,1个executor是否包含2个容器?在纱线模式下,每个executor在一个容器中运行。执行器的数量与从纱线中分配的容器数量相同(集群模式除外,该模式将分配另一个容器来运行驱动程序)。Spark Executor在纱线容器中运行。纱线容器由资源管理器按需提供。纱线容器可以有一个或多个火花执行器。 Spark执行器是运行任务的执行器。 Spark Ex

在纱线上使用火花时,火花执行器和纱线容器之间的关系是什么?

例如,当我设置executor memory=20G和纱线容器memory=10G时,1个executor是否包含2个容器?

在纱线模式下,每个executor在一个容器中运行。执行器的数量与从纱线中分配的容器数量相同(集群模式除外,该模式将分配另一个容器来运行驱动程序)。

Spark Executor在纱线容器中运行。纱线容器由资源管理器按需提供。纱线容器可以有一个或多个火花执行器。 Spark执行器是运行任务的执行器。 Spark Executor将在工作节点(DataNode)上启动

在您的情况下,当您设置executor memory=20G->这意味着您需要一个大小为20GB的容器,您的执行器将在其中运行。现在,您可能有一个或多个执行器使用这个20GB的内存,这是每个工作节点的

例如,如果你有一个8节点的集群,那么你的作业的总内存将是8*20GB

下面是Thread-site.xml中提供的3个配置选项,您可以使用这些选项进行操作并查看差异

yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.resource.memory-mb

在纱线上运行Spark时,每个Spark executor作为纱线容器运行,这意味着容器的数量将始终与Spark应用程序创建的执行器相同,例如通过Spark submit中的--num executors参数


如果我在spark中将--executor memory设置为20G,并将容器的内存分配设置为10G,会发生什么?1 spark executor将获得10G内存,并且仅包含1个容器?如果将容器的最大内存设置为10G,则作业将不会运行,并收到错误,如
所需的执行器内存(XXX MB)高于此群集的最大阈值(YYY MB)!请检查'Thread.scheduler.maximum allocation mb'和/或'Thread.nodemanager.resource.memory mb'的值。
当您说'per worker node'时,回答非常好。我相信在一个工作节点中可以有多个容器。然后,正如你所说,每个这样的容器都可以有多个执行者共享相同的内存。同样在这种情况下,是否有工作者进程的概念,因为我们已经有了一个co-tai-we?