hadoop任务超出虚拟内存限制问题(beyond the 'VIRTUAL' memory limit)
今天用hive跑任务,一个小问题困扰了许久,问题如下:
Container [pid=5284,containerID=container_1669278775243_0001_01_000005] is running 346733056B beyond the 'VIRTUAL' memory limit. Current usage: 284.4 MB of 1 GB physical memory used; 2.4 GB of 2.1 GB virtual memory used. Killing container.
大概意思是超出了虚拟内存限制,
我的机器是4g内存、8g虚拟内存,按理说不应该出现这个问题,由于宿主机有32g内存,
1、我先尝试把虚拟机的内存翻倍至8g,结果还是有这个错误;
2、于是针对linux的虚拟内存进行更改,将虚拟机的虚拟内存从8g调整到16g,发现问题依然没有解决;
3、最后研究出有通过更改配置的方式解决这个错误。
方法一:
调整内存参数
在hadoop的yarn-site.xml文件中更改配置文件:
<property>
<name>mapreduce.map.memory.mb</name>
<value>1536</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2560M</value>
</property>
方法二:
增大hadoop的虚拟内存大小,我通过增加linux的虚拟内存,依然报错,通过在配置文件中更改这个参数后,任务成功跑起来了,猜测hadoop应该是有自己的一套配置,没有直接用宿主机的linux,需要单独配置
在hadoop中更改yarn-site.xml中添加
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>15.5</value>
</property>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报