2011-12-29 2 views
0

Я начинаю с hadoop 0.20.2. Я хотел начать с основной проблемы wordcount с кодом, который я нашел здесь: http://cxwangyi.blogspot.com/2009/12/wordcount-tutorial-for-hadoop-0201.htmlДубликаты в hadoop mapreduce

Это работает как должно. Однако, когда слова разделяются на несколько файлов, и я хочу, чтобы подсчет количества слов на файл, так что я изменить картограф на:

String fileName = ((org.apache.hadoop.mapreduce.lib.input.FileSplit) context.getInputSplit()).getPath().getName(); 

      word.set(itr.nextToken()+"@"+fileName); 

Но тогда я получаю дубликаты в моем mapreduced файла, например: word1 @ file1 1 word2 @ file2 1 word2 @ file2 ~ 1 ...

Так word2 @ file2 ~ 1 не должен был быть там ...

Кто-нибудь знает, что я делаю неправильно?

Благодаря

+1

Звучит так, как ваш текстовый редактор автоматически сохраняет файлы. Например, emacs часто создает автоматическое сохранение с '' '' 'перед именем файла. В этом случае вы получите «файл2» и «файл2 ~». – Fred

ответ

2

Вы уверены, что у вас нет файла с тильдой в конце добавляется к входу для работы Hadoop? Некоторые редакторы, такие как Gedit, генерируют их каждый раз, когда файл редактируется.

+0

О, конечно. Глупый я уже весь день изучал ядро ​​хаопа. Спасибо! –