emr-mapreduce内存错误

zf9nrax1  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(286)

我的减速机出现了一个内存错误: Container is running beyond physical memory limits. Current usage: 6.1 GB of 6 GB physical memory used; 10.8 GB of 30 GB virtual memory used. 是的,有一个物理内存问题,通过增加 mapreduce.reduce.memory.mb 但我不明白为什么会这样。
进入管道的数据越多,发生此内存问题的可能性就越大。问题是,我的大多数reducer(大约90%)都通过了,内存应该随着reducer的通过而释放,因为数据应该已经写入磁盘了。
我错过了什么?

pw9qyyiw

pw9qyyiw1#

在默认情况下,容器预先分配了内存。在这种情况下,所有reducer容器都将有6gb内存,而不考虑集群中的可用内存。这些容器的jvm将不会被重用或跨容器共享(至少在hadoop2中是这样),这意味着如果一个reducer上的内存超出了它的内存6gb限制,它将不会从其他可用容器中获取资源(如果这是您关心的)
现在,为什么只有少数减速机总是超过它的内存(给定90%的通过率)暗示了数据中可能存在的偏差,这意味着这个减速机可能比其他减速机处理更多的输入组或更多的键。

相关问题