MAPREDUCE-5028. Maps fail when io.sort.mb is set to high value. (kkambatl via tucu)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1457918 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5ac6abe107
commit
53e7aaa6dd
|
@ -238,6 +238,9 @@ Release 2.0.5-beta - UNRELEASED
|
|||
MAPREDUCE-4716. TestHsWebServicesJobsQuery.testJobsQueryStateInvalid
|
||||
fails with jdk7. (tgraves via tucu)
|
||||
|
||||
MAPREDUCE-5028. Maps fail when io.sort.mb is set to high value.
|
||||
(kkambatl via tucu)
|
||||
|
||||
Release 2.0.4-alpha - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -1165,8 +1165,9 @@ public class MapTask extends Task {
|
|||
equator = pos;
|
||||
// set index prior to first entry, aligned at meta boundary
|
||||
final int aligned = pos - (pos % METASIZE);
|
||||
kvindex =
|
||||
((aligned - METASIZE + kvbuffer.length) % kvbuffer.length) / 4;
|
||||
// Cast one of the operands to long to ensure large values don't cause int
|
||||
// overflow
|
||||
kvindex = (int) (((long) aligned - METASIZE + kvbuffer.length) % kvbuffer.length) / 4;
|
||||
if (LOG.isInfoEnabled()) {
|
||||
LOG.info("(EQUATOR) " + pos + " kvi " + kvindex +
|
||||
"(" + (kvindex * 4) + ")");
|
||||
|
@ -1183,8 +1184,9 @@ public class MapTask extends Task {
|
|||
bufstart = bufend = e;
|
||||
final int aligned = e - (e % METASIZE);
|
||||
// set start/end to point to first meta record
|
||||
kvstart = kvend =
|
||||
((aligned - METASIZE + kvbuffer.length) % kvbuffer.length) / 4;
|
||||
// Cast one of the operands to long to ensure large values don't cause int
|
||||
// overflow
|
||||
kvstart = kvend = (int) (((long) aligned - METASIZE + kvbuffer.length) % kvbuffer.length) / 4;
|
||||
if (LOG.isInfoEnabled()) {
|
||||
LOG.info("(RESET) equator " + e + " kv " + kvstart + "(" +
|
||||
(kvstart * 4) + ")" + " kvi " + kvindex + "(" + (kvindex * 4) + ")");
|
||||
|
@ -1748,7 +1750,7 @@ public class MapTask extends Task {
|
|||
this.start = 0;
|
||||
}
|
||||
|
||||
super.reset(this.buffer, this.start, this.length);
|
||||
super.reset(this.buffer, this.start, this.length - this.start);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -205,7 +205,8 @@ public class ReduceContextImpl<KEYIN,VALUEIN,KEYOUT,VALUEOUT>
|
|||
if (backupStore.hasNext()) {
|
||||
backupStore.next();
|
||||
DataInputBuffer next = backupStore.nextValue();
|
||||
buffer.reset(next.getData(), next.getPosition(), next.getLength());
|
||||
buffer.reset(next.getData(), next.getPosition(), next.getLength()
|
||||
- next.getPosition());
|
||||
value = valueDeserializer.deserialize(value);
|
||||
return value;
|
||||
} else {
|
||||
|
|
|
@ -49,14 +49,14 @@ public class InMemoryReader<K, V> extends Reader<K, V> {
|
|||
|
||||
buffer = data;
|
||||
bufferSize = (int)fileLength;
|
||||
memDataIn.reset(buffer, start, length);
|
||||
memDataIn.reset(buffer, start, length - start);
|
||||
this.start = start;
|
||||
this.length = length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset(int offset) {
|
||||
memDataIn.reset(buffer, start + offset, length);
|
||||
memDataIn.reset(buffer, start + offset, length - start - offset);
|
||||
bytesRead = offset;
|
||||
eof = false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue