【问题标题】:Spark Error in Dataproc - Insufficient memory for java runtime environmentDataproc 中的 Spark 错误 - java 运行时环境的内存不足
【发布时间】:2026-02-21 12:45:02
【问题描述】:

在使用 Hive 后,我尝试在 Dataproc 中执行 spark-shell 命令,但出现内存不足的错误;

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f79e8443000, 12288, 0) failed; error='Cannot allocate memory' (errno=12)
here is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 12288 bytes for committing reserved memory.
An error report file with more information is saved as:
/home/nadarsneha44/hs_err_pid32312.log

所以,我有几个问题:

  1. 内存错误的原因可能是什么?
  2. 如何增加内存大小以克服错误?

【问题讨论】:

  • 向我们展示完整的堆栈跟踪。
  • 您需要提供有关问题的更多详细信息、您的配置、内存规格等以解决问题。
  • OpenJDK 64 位服务器虚拟机警告:INFO: os::commit_memory(0x00007f79e8443000, 12288, 0) 失败; error='Cannot allocate memory' (errno=12) # # 内存不足,Java 运行环境无法继续。 # 本机内存分配 (mmap) 未能映射 12288 字节以提交保留内存。 # 包含更多信息的错误报告文件保存为:# /home/nadarsneha44/hs_err_pid32312.log

标签: apache-spark google-cloud-platform google-cloud-dataproc


【解决方案1】:

第一个检查点是验证集群节点是否有效地内存不足。如果节点中的所有内存都被使用,解决方案是增加节点中的资源

  • 创建新集群并更改机器类型或

  • Adding extra nodes 与现有集群的机器类型相同。

如果发现节点中的内存没有完全使用(也就是说,有内存可用),那么需要tune the spark-shell,例如为spark.executor.memory设置自定义值或者其他内存属性.

监控节点中的内存很重要,因为如果错误仍然存​​在,则内存错误可能来自主机/驱动程序机器(执行spark-shell 的机器)而不是来自集群。您可以通过在发生错误时监控驱动程序机器中的内存使用情况来验证这一点。

【讨论】:

    最近更新 更多