1、Hive执行SQL语句,出现如下错误:
Container is running beyond physical memory limits.
Current usage: 4.3 GB of 4 GB physical memory used;
8.9 GB of 8.4 GB virtual memory used. Killing container.
2、错误分析:
4.3GB 是当前task所占用的physical memory。
4GB 是mapreduce.map.memory.mb 或者 mapreduce.reduce.memory.mb 设定的值。
8.9GB 是当前task所占用的virtual memory。
8.4GB 是 mapreduce.map.memory.mb * yarn.nodemanager.vmem-pmem-ratio = 4 * 2.1 = 8.4
3、解决思路:
在Reduce端发生的错误,增加mapreduce.reduce.memory.mb 的内存,或者调整 yarn.nodemanager.vmem-pmem-ratio 的值即可。