Hadoop作为一个完整的文件读取并发送给许多映射程序

Hadoop作为一个完整的文件读取并发送给许多映射程序,hadoop,mapper,Hadoop,Mapper,我正在编写一个hadoop应用程序,我希望将输入文件作为一个整体读取,并将其发送给manny mappers,让每个mappers完成部分工作。这是我的文件输入格式。我必须使isSplitable返回false,以便读取整个文件。但是,这会导致仅初始化一个映射器。有没有人可以告诉我如何读取整个输入文件并将其发送给多个映射程序进行处理 public class WholeFileInputFormat extends FileInputFormat<PairWritable, BytesWr

我正在编写一个hadoop应用程序,我希望将输入文件作为一个整体读取,并将其发送给manny mappers,让每个mappers完成部分工作。这是我的文件输入格式。我必须使
isSplitable
返回false,以便读取整个文件。但是,这会导致仅初始化一个映射器。有没有人可以告诉我如何读取整个输入文件并将其发送给多个映射程序进行处理

public class WholeFileInputFormat extends FileInputFormat<PairWritable, BytesWritable> {
    @Override
    protected boolean isSplitable(FileSystem fs, Path filename) {
        return false;
    }

    @Override
    public RecordReader<PairWritable, BytesWritable> getRecordReader(
      InputSplit split, JobConf job, Reporter reporter) throws IOException {
        return new WholeFileRecordReader((FileSplit) split, job);
    }
}
公共类WholeFileInputFormat扩展FileInputFormat{
@凌驾
受保护的布尔isSplitable(文件系统fs,路径文件名){
返回false;
}
@凌驾
公共记录阅读器getRecordReader(
InputSplit split、JobConf作业、Reporter)引发IOException{
返回新的WholeFileRecordReader((FileSplit)拆分,作业);
}
}

向WholeFileInputFormat添加返回任意多个副本的
getSplits
实现。

向WholeFileInputFormat添加返回任意多个副本的
getSplits
实现。

向WholeFileInputFormat添加返回任意多个副本的
getSplits
实现根据需要复制。

向WholeFileInputFormat添加一个
getSplits
实现,该实现可返回所需数量的副本