我使用的是 Hadoop 0.20.2,并且使用的是旧 API。我正在尝试向映射器发送大块数据,而不是一次发送一行(数据涵盖多行)。我已经尝试使用 NLineInputFormat 来设置一次获取多少行,但映射器一次仍然只接收 1 行。我很确定我有正确的代码。是否有任何原因导致这无法正常工作?

供你引用,



基本上,我使用的是 http://hadoop.apache.org/common/docs/r0.20.2/mapred_tutorial.html#Example%3A+WordCount+v1.0 的示例代码,只更改了 TextInputFormat。

提前致谢

最佳答案

NLineInputFormat 旨在确保所有映射器都接收相同数量的输入记录(每个文件拆分的最后部分除外)。

因此,通过将输入属性更改为 2,每个映射器应该(最多)接收 2 个输入对,而不是一次接收 2 个输入行(这就是我认为您正在寻找的)。

您应该能够通过查看每个映射任务的计数器来确认这一点,“映射输入记录”应该为大多数映射器报告 2

关于hadoop - NLineInputFormat 没有效果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11002000/

10-11 07:18