我的执行器核心总数如何比 Spark 应用程序集群中的核心总数多?

问题描述 投票:0回答:1

我使用 AWS EMR 来运行带有 1 个主节点实例 (m6g.xlarge) 和 1 个从节点实例 (m6g.2xlarge) 的 Spark。 m6g.2xlarge 有 8 个 vCpu,默认 cpu 核心。

我正在使用以下配置运行 Spark。

--executor-memory 6g --executor-cores 3 --num-executors 2

据我所知,理想情况下,集群中的核心总数为 8 个。我的配置所需的核心总数为

3x2 = 6
。因此集群管理器最多应添加 2 个执行程序。留下 2 个核心用于守护进程。

但是我看到的是 3 个执行程序被添加到总核心数

3x3=9
,这怎么可能?

apache-spark amazon-emr
1个回答
0
投票

看起来您对这里的“核心”这个名字有点困惑。 物理核心和“执行器核心”之间没有严格的依赖关系。

简单来说,在Spark术语中,“执行器”指的是JVM,“核心”指的是JVM内部的线程。显然,您可以拥有比物理核心更多的线程,因此您的场景中没有任何错误(或意外)。

顺便说一句,在 Databricks 中,为了避免这种混淆,建议教师使用术语“线程”或“槽”而不是“核心”。

© www.soinside.com 2019 - 2024. All rights reserved.