大数据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.原因

hive启动堆栈内存不足

3. 解决办法

方法1(推荐):
(1)在hadoop下的etc/hadoop中的配置文件hadoop-env.sh中修改如下配置:
修改为:
export HADOOP_CLIENT_OPTS=“-Xmx2048m $HADOOP_CLIENT_OPTS”
在这里插入图片描述
(2)在hive下的bin目录下的配置文件hive-config.sh中修改如下配置:

修改为:

export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-2048}
在这里插入图片描述

方法2: 直接修改虚拟机的内存,有2G扩大4G,然后重启服务。
如果不生效,使用方法2。
方法3:
修改mapred-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>1536</value>
</property>
<property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx1024M</value>
</property>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值