//计算SplitFile的大小protectedlongcomputeSplitSize( long blockSize , long minSize,
long maxSize ) {
return Math.max(minSize , Math.min( maxSize, blockSize));
createRecordReader:
String delimiter = context.getConfiguration().get(
"textinputformat.record.delimiter" );
byte[] recordDelimiterBytes = null ;
if (null != delimiter)
recordDelimiterBytes = delimiter.getBytes(Charsets. UTF_8);
returnnew LineRecordReader(recordDelimiterBytes );
LineRecordReader:
// We always read one extra line, which lies outside the upper// split limit i.e. (end - 1)while (getFilePosition() <= end || in.needAdditionalRecordAfterSplit()) {
LineReader:
privateint bufferSize = DEFAULT_BUFFER_SIZE;
private InputStream in;
privatebyte[] buffer ;
privateintreadCustomLine(Text str, int maxLineLength , int maxBytesToConsume)
//一个一个buffer读