【发布时间】:2021-02-09 09:48:40
【问题描述】:
我们目前遇到了一个问题,Spark 显示我们的每个节点只有 4GB 内存。但是,我们通过设置spark-worker.jvmOptions = -Xmx10g 分配了10GB 的内存。我们无法弄清楚是什么导致了这种异常限制/不正确的内存分配。
当我们运行 spark 作业时,它会像每个工作人员只有 4GB 内存一样运行。
任何帮助都会很棒!谢谢!
【问题讨论】:
标签: apache-spark
我们目前遇到了一个问题,Spark 显示我们的每个节点只有 4GB 内存。但是,我们通过设置spark-worker.jvmOptions = -Xmx10g 分配了10GB 的内存。我们无法弄清楚是什么导致了这种异常限制/不正确的内存分配。
当我们运行 spark 作业时,它会像每个工作人员只有 4GB 内存一样运行。
任何帮助都会很棒!谢谢!
【问题讨论】:
标签: apache-spark
您应该在 spark-submit 中使用:--executor-memory 设置工作内存
【讨论】:
---executor-memory 会是解决方案。这应该设置为最好地优化火花作业。比如有 64GB 的内存,那么 ---executor-memory 应该设置为 19GB 之类的……更多有趣的细节在下面的链接中。 blog.cloudera.com/how-to-tune-your-apache-spark-jobs-part-2 这个问题更多的是实际的 Spark 服务器无法识别使用 jvm 属性分配给它的内存。
尝试在 conf/spark-defaults.conf 文件中设置以下参数:
spark.executor.memory 10g
【讨论】:
spark.executor.memory 配置实际上与---executor-memory 的 spark-submit 参数做同样的事情。因此它不会影响分配给 JVM 的内存量,而只会影响作业中的执行程序。