我需要一些帮助在我的Map减少代码。代码运行完全是在eclipse和独立模式下进行的,但是当我打包代码并尝试在伪分布式模式下本地运行它时,输出并不像我期望的那样。
Map input records = 11
Map input records = 11
Reduce input records = 11
Reduce output records = 0
这些就是我得到的价值观。
当我在eclipse或独立模式下使用相同的config&input文件运行相同的代码时
Map input records = 11
Map output records = 11
Reduce input records = 11
Reduce output records = 4
有谁能告诉我出了什么事吗。。??
我尝试了为eclipse->export->runable jar和form terminal构建.jar文件的两种方法(javac-classpath hadoop-core-1.0.4-d classes mapredcode.java&&jar-cvf mapredcode.jar-c classes/)
我该如何调试这个。。
1条答案
按热度按时间rryofs0p1#
你用的是枪吗
combiner()
方法?如果是的话。那么合路器的o/p是否与Map器的o/p相同?因为在hadoop中,combiner是在hadoop本身的支配下运行的,在您的情况下可能不会以伪distributed模式运行。合路器本身就是一个用来降低网络流量的减速机。
代码应该是这样的,即使组合器没有运行,reducer也应该从Map器中获得预期的格式。
希望有帮助。