is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used......

本文探讨了Hive任务因物理内存不足被杀死的问题,通过分析内存使用情况,提出调整mapreduce.map.memory.mb和mapreduce.reduce.memory.mb参数的方法,以避免内存溢出。解决过程包括配置参数调整和实践验证,提示读者注意内存参数过大可能导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、任务执行报错截图:
在这里插入图片描述
1、错误分析:显示物理内存和虚拟内存的占用情况
Container [pid=24845,containerID=container_1625047493764_0479_01_000001] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 6.6 GB of 4.9 TB virtual memory used. Killing container.

2、原因:
资源不够,提交的应用被kill掉。由于系统分配物理内存1G,hive执行时需要1.0G。可能是物理内存溢出(分为map和reduce两种可能)

3、解决:
调节参数。在mapred-site.xml配置中设置mapreduce的内存分配大小:
根据服务器的实际内存规格,现调大参数mapreduce.map.memory.mb的值为5120(根据实际情况调整)
根据服务器的实际内存规格,现调大参数mapreduce.reduce.memory.mb的值为5120(根据实际情况调整)
在这里插入图片描述
保存,部署配置生效。重新执行hive脚本,不再报错。

注意:有的在调整完这两个参数之后问题解决了,但是有的就会遇到其它的问题,比如任务可以跑起来了,但是mapreduce任务却运行卡住,memory.mb这种参数不用给这么大,调整回去1024或者2048。调整太大到时候更起不来,申请不到几个map和reduce,可能就是占用的太大了导致reduce没有资源去启动就一直卡着。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值