我通过FileInputFormat扩展了一些XMLFileInputFormat。问题是当我在job上设置此类时

job.setInputFormatClass(XMLFileInputFormat.class);

我收到一些错误,告诉它期望该类扩展or.apache.hadoop.mapreduce.InputFormat(但我检查FileInputFormat实现了InputFormat)

这个类是这样设置的
public class XMLFileInputFormat extends FileInputFormat<NullWritable, BytesWritable> {

    @Override
    protected boolean isSplitable(FileSystem fs, Path filename) {
        return false; }

    @Override
    public RecordReader<NullWritable, BytesWritable> getRecordReader(
            InputSplit split, JobConf job, Reporter reporter) throws IOException {
        return new XMLFileRecordReader((FileSplit) split, job);
    }
}

如何正确设置InputFormat

最佳答案

请在导入语句中验证包结构。它应该是
org.apache.hadoop.mapreduce.FileInputFormat。

您可能已经导入:
org.apache.hadoop.mapred.FileInputFormat

09-26 15:26