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没有资源去启动就一直卡着。