我正在考虑使用Apache Spark进行数据分析。过去,由于NUMA架构和对象仅局限在单个节点上,我曾经在4个插槽服务器上体验到Java/Scala的减速。解决方案是为每个NUMA节点启动一个单独的固定JVM,并使用Akka使它们彼此通信。
Spark如何处理NUMA以避免类似情况?
我正在考虑使用Apache Spark进行数据分析。过去,由于NUMA架构和对象仅局限在单个节点上,我曾经在4个插槽服务器上体验到Java/Scala的减速。解决方案是为每个NUMA节点启动一个单独的固定JVM,并使用Akka使它们彼此通信。
Spark如何处理NUMA以避免类似情况?
--executor-cores=32
启动Spark(假设每个套接字有8个虚拟核心),则会遇到相同的问题。但是,您可以在每台机器上启动4个工作进程,每个进程都带有--executor-cores=8
。然后您可以将这些执行程序固定到节点上。