我正在编写一个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);
}
}
1条答案
按热度按时间y4ekin9u1#
向wholefileinputformat添加
getSplits
返回任意多个副本。