1

假设我有 100 个映射器并行运行,总共有 500 个映射器在运行。

每个映射器接收的输入大小几乎相同,每个映射器应该花费的处理时间应该或多或少相同。

但是假设前 100 个映射器在 20 分钟内完成,接下来的 100 个映射器大约需要 25-30 分钟,下一批 100 个映射器每个大约需要 40-50 分钟。然后我们得到 GC 开销错误。

为什么会这样?

我已经设置了以下配置:

  <property><name>mapred.child.java.opts</name><value>-Xmx4096m</value></property>
  <property><name>mapred.job.reuse.jvm.num.tasks</name><value>1</value></property>

这里还能做什么?

4

0 回答 0