我从hadoop 0.20.2开始。我想用我在这里找到的代码从基本的单词计数问题开始:http://cxwangyi.blogspot.com/2009/12/wordcount -教程——hadoop - 0201. - html
这就像它应该的那样。但是,当单词在多个文件中分开并且我想对每个文件的单词计数时,我将映射器更改为:
String fileName = ((org.apache.hadoop.mapreduce.lib.input.FileSplit) context.getInputSplit()).getPath().getName();
word.set(itr.nextToken()+"@"+fileName);
但我得到重复在我的mapreduce文件,像这样:word1@file1 1word2@file2 1word2@file2 ~ 1…
所以word2@file2~ 1不应该在那里…
有谁知道我做错了什么吗?谢谢
您确定没有在hadoop作业的输入中添加最后的波浪号文件吗?一些编辑器,如Gedit,每次编辑文件时都会生成它们。