0

我的 map-reduce 代码需要一些帮助。代码在 Eclipse 和独立模式下完美运行,但是当我打包代码并尝试在伪分布式模式下本地运行时,输出与我预期的不同。

Map input records = 11
Map input records = 11

Reduce input records = 11
Reduce output records = 0

这些是我得到的值。

当我在 Eclipse 或独立模式下使用相同的配置和输入文件运行相同的代码时

Map input records = 11
Map output records = 11

Reduce input records = 11
Reduce output records = 4

谁能告诉我怎么了..??

我尝试了为 eclipse -> 导出 -> 可运行 jar 和表单终端构建 .jar 文件的两种方法(javac -classpath hadoop-core-1.0.4 -d classes mapredcode.java && jar -cvf mapredcode.jar -C类/。)

以及如何调试这个..

4

1 回答 1

1

你在用combiner()方法吗?如果是的话。那么combiner的o/p和mapper的o/p一样吗?

因为在 Hadoop 中,Combiner 由 Hadoop 本身运行,在您的情况下可能不会在伪分布式模式下运行。组合器本身只不过是一个用于降低网络流量的减速器。

并且代码应该是这样的,即使没有运行组合器,reducer 也应该从映射器获得预期的格式。

希望能帮助到你。

于 2013-02-07T08:26:04.807 回答