Dataproc 中的 Spark 错误 - java 运行时环境的内存不足



在使用 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. 如何增加内存大小以克服错误?

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

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

  • 将相同计算机类型的额外节点添加到现有群集。

如果您发现节点中的内存未完全使用(也就是说,有可用内存(,则需要调整spark-shell,例如,为spark.executor.memory或其他内存属性设置自定义值。

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