NUMA系统上的Spark

时间:2015-02-27 06:32:48

标签: java scala apache-spark numa numactl

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

如何在Spark中使用NUMA以避免出现类似情况?

1 个答案:

答案 0 :(得分:1)

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

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