java - NUMA 系统上的 Spark

标签 java scala apache-spark numa numactl

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

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

最佳答案

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

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

关于java - NUMA 系统上的 Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28758920/

相关文章:

java - 表达式语言将 "-"符号视为字符串文字而不是减号运算符?

java - ThreadPoolExecutor.shutdownNow() 没有在 Thread 中抛出 InterruptedException

java - 如何让 NetBeans 向我展示 Java 方法的正确文档?

java - Mahout 0.11.1 Spark-Shell NoClassDefFoundError

python - Spark SQL 到 Hive 表 - 日期时间字段时间错误

java - 在这种情况下如何评估按位运算符?

scala - 如何在 Scala 宏中获取更高级类型参数的树

scala - 更改 fs2.Stream 的效果类型

scala - 组合函数导致 StackOverflow

apache-spark - Spark 与 AWS S3 连接错误 : Not able to read file from S3 location through spark-shell