hadoop作为一个整体读取文件并发送给许多Map程序

mpbci0fu  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(264)

我正在编写一个hadoop应用程序,我想读取输入文件作为一个整体,并将其发送给manny mappers,让每个mappers做部分工作。这是我的文件输入格式。我得做点什么 isSplitable 返回false以便我可以读取整个文件。然而,这只会导致 one mapper 将初始化。有没有人可以告诉我如何读取输入文件作为一个整体,并将其发送给多个Map程序进行处理?

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);
    }
}
y4ekin9u

y4ekin9u1#

向wholefileinputformat添加 getSplits 返回任意多个副本。

相关问题