我正在使用 Hadoop 2.0.5 (Alpha) 运行相对较大的作业,并且遇到了以下错误:
容器 [pid=15023,containerID=container_1378641992707_0002_01_000029] 运行超出虚拟内存限制。当前使用情况:已使用 492.4 MB 的1 GB 物理内存;使用了 3.3 GB 的2.1 GB虚拟内存。杀死容器。
然后我了解了这两个参数:
yarn.nodemanager.vmem-pmem-ratio 属性,默认设置为 2.1。
yarn.app.mapreduce.am.command-opts默认设置为 -Xmx1024mb (=1GB)。
这解释了上面标记的限制。
将这些参数设置为更高的值确实有帮助,但后来我发现了这个参数: yarn.app.mapreduce.am.resource.mb,默认设置为 1536。
而且我无法从 Hadoop 的默认 XML 中给出的描述中完全区分这 3 个之间的区别,我也无法正确地设置它们以优化它们。
一个解释或一个很好的参考将不胜感激