[
https://issues.apache.org/jira/browse/MAPREDUCE-1248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12783591#action_12783591
]
Ruibang He commented on MAPREDUCE-1248:
---------------------------------------
I often observed the memory consumption in the reduce phase of Reducers go up
to heap limit and fall down repeatly. This phenomenon is often caused by
frequent temporay object allocation. This is an impact to performance,
regarding GC has to keep working constantly.
> Redundant memory copying in StreamKeyValUtil
> --------------------------------------------
>
> Key: MAPREDUCE-1248
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-1248
> Project: Hadoop Map/Reduce
> Issue Type: Improvement
> Components: contrib/streaming
> Reporter: Ruibang He
> Priority: Minor
>
> I found that when MROutputThread collecting the output of Reducer, it calls
> StreamKeyValUtil.splitKeyVal() and two local byte-arrays are allocated there
> for each line of output. Later these two byte-arrays are passed to variable
> key and val. There are twice memory copying here, one is the
> System.arraycopy() method, the other is inside key.set() / val.set().
> This causes double times of memory copying for the whole output (may lead to
> higher CPU consumption), and frequent temporay object allocation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.