3

我正在考虑使用 Apache Spark 进行数据分析。过去,由于 NUMA 架构和对象位于单个节点的本地,我在 4 插槽服务器上经历过 Java/Scala 速度下降。解决方案是为每个 NUMA 节点启动一个单独的固定 JVM,并让它们使用 Akka 相互通信。

在 Spark 中如何处理 NUMA 以避免类似情况?

4

1 回答 1

2

如果您使用--executor-cores=32(假设每个插槽有 8 个虚拟内核)启动 Spark,您将遇到同样的问题。但是您可以在每台机器上启动 4 个工作人员,每个工作人员都可以使用--executor-cores=8。然后你可以将这些执行器固定到节点上。

这种设置会产生更多的通信开销,但可能是一个很好的权衡。Spark 试图最小化 executor 之间的通信,因为它们在典型情况下位于不同的机器上。

于 2015-03-01T12:24:39.880 回答