Java 为什么身份映射器会内存不足?

Java 为什么身份映射器会内存不足?,java,hadoop,out-of-memory,amazon-emr,Java,Hadoop,Out Of Memory,Amazon Emr,在reduce中,标识映射程序只处理Hadoop作业输入文件,并将其发送到reducer,而不进行修改。在我的某个工作中,我非常惊讶地看到该工作在映射阶段失败,出现“内存不足错误”和“超出GC开销限制” 据我所知,身份映射器上的内存泄漏是不可能的。 这种错误的原因是什么?经过几个小时的研究和反复试验,我意识到我为任务组准备的机器都是内存不多的小实例,更有趣的是,我的内存不足是在洗牌过程中,而不是在映射过程中。你能告诉我你是如何知道这是在洗牌过程中发生的吗?我在减速机上遇到了类似的问题。我意识到深

在reduce中,标识映射程序只处理Hadoop作业输入文件,并将其发送到reducer,而不进行修改。在我的某个工作中,我非常惊讶地看到该工作在映射阶段失败,出现“内存不足错误”和“超出GC开销限制”

据我所知,身份映射器上的内存泄漏是不可能的。
这种错误的原因是什么?

经过几个小时的研究和反复试验,我意识到我为任务组准备的机器都是内存不多的小实例,更有趣的是,我的内存不足是在洗牌过程中,而不是在映射过程中。

你能告诉我你是如何知道这是在洗牌过程中发生的吗?我在减速机上遇到了类似的问题。我意识到深入研究OOM痕迹。这些异常是在Hadoop中与洗牌相关的函数中提出的。@sortega我得到了相同的错误,但在4节点集群上,每个在Elastic MapReduce集群上都有17GB内存。你能解释一下你的数据(大小、行、列等)吗?我的是大约223GB的bson格式MongoDB转储文件。