protected void splitFile(int numSplits) throws Exception { InputSplit[] inputSplit = databusInputFormat.getSplits(defaultConf, numSplits); LOG.info("number of splits : " + inputSplit.length); for (InputSplit split : inputSplit) { readMessages.addAll(readSplit(databusInputFormat, split, defaultConf, reporter)); } }
/** * read the the given input split. * * @return List : List of read messages */ private List<Message> readSplit( DatabusInputFormat format, InputSplit split, JobConf job, Reporter reporter) throws IOException { List<Message> result = new ArrayList<Message>(); RecordReader<LongWritable, Message> reader = format.getRecordReader(split, job, reporter); LongWritable key = ((DatabusRecordReader) reader).createKey(); Message value = ((DatabusRecordReader) reader).createValue(); while (((DatabusRecordReader) reader).next(key, value)) { result.add(value); value = (Message) ((DatabusRecordReader) reader).createValue(); } reader.close(); return result; }