2012-03-15 2 views
1

Я пытаюсь сделать WordCount используя Hadoop. Я хочу использовать XmlInputFormat.class для разделения файловой базы на тег XML. XmlInputFormat.class является hereНевозможно использовать XmlInputFormat extends TextInputFormat в Java

XmlInputFormat.class это простирается от TextInputFormat.class

Job job = new Job(getConf()); 
job.setInputFormatClass(XmlInputFormat.class); 

Это показывает ошибку

Метод setInputFormatClass (класс) в типе работа не применительно к аргументам (класс)

Но это нормально, когда я использование

Job job = new Job(getConf()); 
job.setInputFormatClass(TextInputFormat.class); 

Почему мы не можем использовать удлинители? Или я сделал что-то не так?

ответ

0

Это похоже на проблему с вашей версией Hadoop. Вы проверили, что класс XMLInputFormat, который вы используете, на самом деле является правильным для вашей версии Hadoop?

0

Я думаю, что Hadoop учебник с использованием библиотеки mapred устарела, и следует обратить внимание на:

http://wiki.apache.org/hadoop/WordCount

Я мог успешно работать XMLInputFormat после незначительной модификации кода выше.


Просьба проигнорировать этот ответ. Я думаю, причина в том, что я использовал устаревшую версию карты, которая использует mapred. *.

У меня была такая же проблема, и она решена, когда я изменил один из импорта:

От: импорта org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

Кому: import org.apache.hadoop.mapred.TextInputFormat;

0

Возможно, вы импортируете неправильный XmlInputFormat.class в свой код. то же самое произошло со мной с TextInputFormat.class, чтобы увидеть, что я использовал неправильный импорт класса, который затмение автоматически вытащило. Правильный класс для импорта:

org.apache.hadoop.mapreduce.lib.input.TextInputFormat;

Смежные вопросы