OpenJDK客户端VM-无法分配内存



我正在集群上运行Hadoop map reduce作业。我收到这个错误。

OpenJDK客户端VM警告:INFO:os::commit_memory(0x79f20000104861696,0)失败;错误="无法分配内存"(错误号=12)

内存不足,Java运行时环境无法继续。

本机内存分配(malloc)无法分配104861696字节用于提交保留内存。

该怎么办?

确保机器上有swap空间

ubuntu@VM-ubuntu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           994        928         65          0          1         48
-/+ buffers/cache:        878        115
Swap:         4095       1086       3009

注意Swap行。

我刚刚在一个弹性计算实例中遇到了这个问题。道岔交换空间默认情况下不会装入。

您可以尝试通过传递这些运行时参数来增加内存分配大小。

例如:

java -Xms1024M -Xmx2048M -jar application.jar
  • Xmx是最大尺寸
  • Xms是最小大小

您用于JVM 的参数可能会导致容器内存溢出

检查属性是否:

yarn.nodemanager.resource.memory-mb
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb

在yarn.xml上匹配所需的值。

有关更多内存参考,请阅读:

HortonWorks记忆参考

类似问题

注意:这是针对Hadoop2.0的,如果您正在运行hadoop1.0,请检查Task属性。

对我来说,可用内存小于jvm所需的内存,这导致了"内存不足,Java运行时环境无法继续";。

检查可用内存:

free -h

停止一些无用的过程,获得更多的内存。

相关内容

  • 没有找到相关文章

最新更新