[
https://issues.apache.org/jira/browse/MAPREDUCE-6805?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15614354#comment-15614354
]
shenxianqiang commented on MAPREDUCE-6805:
------------------------------------------
mapper log:
{quote}
2016-10-28 07:51:27,225 INFO [main] org.apache.hadoop.mapred.Merger: Merging 37
sorted segments
2016-10-28 07:51:27,233 INFO [main] org.apache.hadoop.mapred.Merger: Merging 10
intermediate segments out of a total of 37
2016-10-28 07:51:42,488 INFO [main] org.apache.hadoop.mapred.Merger: Merging 10
intermediate segments out of a total of 28
2016-10-28 07:51:58,390 INFO [main] org.apache.hadoop.mapred.Merger: Merging 10
intermediate segments out of a total of 19
2016-10-28 07:52:14,849 INFO [main] org.apache.hadoop.mapred.Merger: Down to
the last merge-pass, with 10 segments left of total size: 2368930365 bytes
2016-10-28 07:53:16,168 INFO [main] org.apache.hadoop.mapred.Task:
Task:attempt_1477008840094_147160_m_000001_0 is done. And is in the process of
committing
{quote}
current mapper output size : 2368930365,it is too larger than the size of
int(about 2.1billon).
In the function InMemoryMapOutput:
{quote}
private synchronized InMemoryMapOutput<K, V> unconditionalReserve(
TaskAttemptID mapId, long requestedSize, boolean primaryMapOutput) {
usedMemory += requestedSize;
return new InMemoryMapOutput<K,V>(jobConf, mapId, this, (int)requestedSize,
codec, primaryMapOutput);
{quote}
There is a type conversion,which lead to requestedSize negative.
In my opinion, We should use long type in class InMemoryMapOutput.
> Negative Array Exception while reducer fetch mapper output
> ----------------------------------------------------------
>
> Key: MAPREDUCE-6805
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-6805
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: mrv2
> Affects Versions: 2.6.0
> Environment: CHD5.7.0
> Reporter: shenxianqiang
> Priority: Minor
>
> MapReduce job stuck with a Negative Array Size exception thrown by the
> reducer,lead to MR job failed
> stack trace:
> {quote}
> 2016-10-28 08:01:16,882 WARN [main]
> org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException
> as:web_vr (auth:SIMPLE)
> cause:org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in
> shuffle in fetcher#3
> 2016-10-28 08:01:16,883 WARN [main] org.apache.hadoop.mapred.YarnChild:
> Exception running child :
> org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in
> shuffle in fetcher#3
> at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)
> at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)
> at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:415)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1930)
> at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: java.lang.NegativeArraySizeException
> at
> org.apache.hadoop.io.BoundedByteArrayOutputStream.<init>(BoundedByteArrayOutputStream.java:56)
> at
> org.apache.hadoop.io.BoundedByteArrayOutputStream.<init>(BoundedByteArrayOutputStream.java:46)
> at
> org.apache.hadoop.mapreduce.task.reduce.InMemoryMapOutput.<init>(InMemoryMapOutput.java:63)
> at
> org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl.unconditionalReserve(MergeManagerImpl.java:305)
> at
> org.apache.hadoop.mapreduce.task.reduce.MergeManagerImpl.reserve(MergeManagerImpl.java:295)
> at
> org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyMapOutput(Fetcher.java:514)
> at
> org.apache.hadoop.mapreduce.task.reduce.Fetcher.copyFromHost(Fetcher.java:336)
> at org.apache.hadoop.mapreduce.task.reduce.Fetcher.run(Fetcher.java:193)
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]