You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by bo...@apache.org on 2013/04/15 23:36:31 UTC
svn commit: r1468235 - in
/hadoop/common/branches/branch-2/hadoop-mapreduce-project: CHANGES.txt
hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/LineRecordReader.java
Author: bobby
Date: Mon Apr 15 21:36:31 2013
New Revision: 1468235
URL: http://svn.apache.org/r1468235
Log:
svn merge -c 1468232 FIXES: MAPREDUCE-4974. Optimising the LineRecordReader initialize() method (Gelesh via bobby)
Modified:
hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/LineRecordReader.java
Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt?rev=1468235&r1=1468234&r2=1468235&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/CHANGES.txt Mon Apr 15 21:36:31 2013
@@ -45,6 +45,9 @@ Release 2.0.5-beta - UNRELEASED
OPTIMIZATIONS
+ MAPREDUCE-4974. Optimising the LineRecordReader initialize() method
+ (Gelesh via bobby)
+
BUG FIXES
MAPREDUCE-4671. AM does not tell the RM about container requests which are
Modified: hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/LineRecordReader.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/LineRecordReader.java?rev=1468235&r1=1468234&r2=1468235&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/LineRecordReader.java (original)
+++ hadoop/common/branches/branch-2/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/LineRecordReader.java Mon Apr 15 21:36:31 2013
@@ -52,7 +52,6 @@ public class LineRecordReader extends Re
public static final String MAX_LINE_LENGTH =
"mapreduce.input.linerecordreader.line.maxlength";
- private CompressionCodecFactory compressionCodecs = null;
private long start;
private long pos;
private long end;
@@ -60,9 +59,9 @@ public class LineRecordReader extends Re
private FSDataInputStream fileIn;
private Seekable filePosition;
private int maxLineLength;
- private LongWritable key = null;
- private Text value = null;
- private CompressionCodec codec;
+ private LongWritable key;
+ private Text value;
+ private boolean isCompressedInput;
private Decompressor decompressor;
private byte[] recordDelimiterBytes;
@@ -81,13 +80,14 @@ public class LineRecordReader extends Re
start = split.getStart();
end = start + split.getLength();
final Path file = split.getPath();
- compressionCodecs = new CompressionCodecFactory(job);
- codec = compressionCodecs.getCodec(file);
// open the file and seek to the start of the split
final FileSystem fs = file.getFileSystem(job);
fileIn = fs.open(file);
- if (isCompressedInput()) {
+
+ CompressionCodec codec = new CompressionCodecFactory(job).getCodec(file);
+ if (null!=codec) {
+ isCompressedInput = true;
decompressor = CodecPool.getDecompressor(codec);
if (codec instanceof SplittableCompressionCodec) {
final SplitCompressionInputStream cIn =
@@ -132,19 +132,16 @@ public class LineRecordReader extends Re
this.pos = start;
}
- private boolean isCompressedInput() {
- return (codec != null);
- }
private int maxBytesToConsume(long pos) {
- return isCompressedInput()
+ return isCompressedInput
? Integer.MAX_VALUE
: (int) Math.min(Integer.MAX_VALUE, end - pos);
}
private long getFilePosition() throws IOException {
long retVal;
- if (isCompressedInput() && null != filePosition) {
+ if (isCompressedInput && null != filePosition) {
retVal = filePosition.getPos();
} else {
retVal = pos;
@@ -166,9 +163,6 @@ public class LineRecordReader extends Re
while (getFilePosition() <= end) {
newSize = in.readLine(value, maxLineLength,
Math.max(maxBytesToConsume(pos), maxLineLength));
- if (newSize == 0) {
- break;
- }
pos += newSize;
if (newSize < maxLineLength) {
break;