如何从 Spark 池分配 vCore 和内存

How vCores and Memory get allocated from Spark Pool

我有以下火花池配置。节点:3 到 10。

Spark 作业配置:

看到下面的分配后,看起来它正在使用池中的所有 10 个节点。 10 x 8 个 vCores = 80 个 vCores; 10 x 64 GB = 640 GB

但是,我已经将执行程序的数量 - 最小和最大设置为 4 到 6。那么,它不应该最大到 6 x 8 vCores 和 6 x 64 GB 吗?如果我在这里遗漏了什么,请更正。

您对 Spark 池分配的 vCore、内存和 Spark 作业执行器大小感到困惑,这是两个不同的东西。

您已经创建了一个 ContractsMed Spark Pool,它拥有最多。 10 个节点,每个节点大小等于 8 个 vCore 和 64 GB 内存。这就是您共享的最后一个片段包含 Spark 池分配的 vCore 和内存而不是 Spark 作业详细信息的原因。因此,80 个 vCore 和 640 GB 是 Spark 池大小而不是 Spark 作业

现在进入 Spark 作业配置,您将在其中使用 ContractsMed Spark Pool。由于您配置了最多 6 个执行器,每个执行器具有 8 个 vCore 和 56 GB 内存,因此将从 Spark 池中获取相同的资源,即 6x8=56 个 vCore 和 6x56=336 GB 内存,并在作业中使用。

Spark Pool 的剩余资源(80-56=24 个 vCores 和 640-336=304 GB 内存)将保持未使用状态,可用于任何其他 Spark 作业。