2011-09-23 59 views
2

作为我的Java映射器的一部分,我有一个命令在本地节点上执行一些代码,并将本地输出文件复制到hadoop fs。不幸的是,我发现了以下的输出:VMHadoop java mapper -copyFromLocal堆大小错误

的初始化过程中出现

错误

无法为对象堆

我试着调整mapred.map.child预留足够的空间。 java.opts到-Xmx512M,但不幸的是没有运气。

当我进入节点ssh时,我可以运行-copyFromLocal命令没有任何问题。输出文件也很小,比如大约100kb。

任何帮助将不胜感激!

+0

检查日志文件并发布任何异常(如果有)。 –

+0

不幸在日志文件中没有例外... – Joris

+0

“命令如何在本地noce上执行一些代码”看起来像什么?你分叉另一个过程? –

回答

0

映射器或缩减器中的无限循环可能会导致内存不足错误。

当我用iterator.hasNext()作为条件,对于reducer值,并且没有在循环内调用iterator.next()时,我碰到过一次OoM。