大数据Hive的beyond the ‘VIRTUAL‘ memory limit

1. 错误

在进行hive对任务的mapred过程的时候,时常出现如下的错误:
[2019-09-30 03:18:56.709]Container [pid=11578,containerID=container_1569779921172_0010_01_000005] is running 261372416B beyond the ‘VIRTUAL’ memory limit. Current usage: 106.1 MB of 1 GB physical memory used; 2.3 GB of 2.1 GB virtual memory used. Killing container.
(物理内存够用,但虚拟内存超过限制)

2. 解决办法

方法1(推荐): 直接修改虚拟机的内存,有2G扩大4G,然后重启服务。
如果不生效,使用方法2。
方法2:
修改mapred-site.xml文件:添加以下配置

<property>
  <name>mapreduce.map.memory.mbname>
  <value>1536value>
property>
<property>
  <name>mapreduce.map.java.optsname>
  <value>-Xmx1024Mvalue>
property>
<property>
  <name>mapreduce.reduce.memory.mbname>
  <value>1536value>
property>
<property>
  <name>mapreduce.reduce.java.optsname>
  <value>-Xmx1024Mvalue>
property>

其中的数值1536MB是根据机器的物理内存2GB*0.75=1536MB。
重启集群服务即可解决。

你可能感兴趣的:(大数据,大数据,hive,hadoop)