我在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 classes /。)
我该如何调试..
答案 0 :(得分:1)
您使用的是combiner()
方法吗?
如果是的话。那么组合器的o / p与映射器的o / p相同吗?
因为在Hadoop中,Combiner是由Hadoop本身运行的,并且在您的情况下可能无法以伪分辨模式运行。 组合器本身只是一个用于降低网络流量的reducer。
代码应该是这样的,即使Combiner没有运行,reducer也应该从mapper中获得预期的格式。
希望它有所帮助。