无法在Java中使用XmlInputFormat扩展文本InputFormat

无法在Java中使用XmlInputFormat扩展文本InputFormat,java,hadoop,extends,word-count,Java,Hadoop,Extends,Word Count,我正在尝试使用Hadoop进行字数统计。我想使用XmlInputFormat.class根据XML标记拆分文件。XmlInputFormat.class是 XmlInputFormat.class是对TextInputFormat.class的扩展 Job job = new Job(getConf()); job.setInputFormatClass(XmlInputFormat.class); 它显示了错误 类型作业中的方法setInputFormatClass(类)不适用于参数(类

我正在尝试使用Hadoop进行字数统计。我想使用XmlInputFormat.class根据XML标记拆分文件。XmlInputFormat.class是

XmlInputFormat.class是对TextInputFormat.class的扩展

 Job job = new Job(getConf());
 job.setInputFormatClass(XmlInputFormat.class);
它显示了错误

类型作业中的方法setInputFormatClass(类)不适用于参数(类)

但是当我使用

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

为什么我们不能用这个?还是我做错了什么?

这似乎是Hadoop版本的问题。您是否检查过您正在使用的XMLInputFormat类是否适合您的Hadoop版本?

我认为使用mapred库的Hadoop教程已经过时,应该看看:

在稍微修改了上面的代码之后,我就可以成功地运行XMLInputFormat了


请忽略这个答案。我想原因是因为我使用了不推荐使用的map reduce版本,它使用mapred.*

我也遇到了同样的问题,当我修改其中一个导入时,问题得到了解决:

发件人: 导入org.apache.hadoop.mapreduce.lib.input.TextInputFormat

致:
导入org.apache.hadoop.mapred.TextInputFormat

可能是您在代码中导入了错误的XmlInputFormat.class。同样的情况也发生在我的TextInputFormat.class上,因为我使用了eclipse自动退出的类的错误导入。要导入的正确类是:

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