[
https://issues.apache.org/jira/browse/MAPREDUCE-4946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13556394#comment-13556394
]
Jason Lowe commented on MAPREDUCE-4946:
---------------------------------------
Sample stacktrace from one of the many IPC server threads waiting for a lock
during type-conversion of the map completion events:
{noformat}
"IPC Server handler 9 on 45874" daemon prio=10 tid=0x08f76800 nid=0x1c27
waiting for monitor entry [0x10583000]
java.lang.Thread.State: BLOCKED (on object monitor)
at
org.apache.hadoop.mapreduce.v2.api.records.impl.pb.JobIdPBImpl.getAppId(JobIdPBImpl.java:78)
- waiting to lock <0x21e729b8> (a
org.apache.hadoop.mapreduce.v2.api.records.impl.pb.JobIdPBImpl)
at
org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:65)
at
org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:119)
at
org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:211)
at
org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:185)
at
org.apache.hadoop.mapreduce.TypeConverter.fromYarn(TypeConverter.java:178)
at
org.apache.hadoop.mapred.TaskAttemptListenerImpl.getMapCompletionEvents(TaskAttemptListenerImpl.java:284)
at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.apache.hadoop.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:394)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1530)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1526)
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:1221)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1524)
{noformat}
> Type conversion of map completion events leads to performance problems with
> large jobs
> --------------------------------------------------------------------------------------
>
> Key: MAPREDUCE-4946
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-4946
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: mr-am
> Affects Versions: 2.0.2-alpha, 0.23.5
> Reporter: Jason Lowe
> Priority: Critical
>
> We've seen issues with large jobs (e.g.: 13,000 maps and 3,500 reduces) where
> reducers fail to connect back to the AM after being launched due to
> connection timeout. Looking at stack traces of the AM during this time we
> see a lot of IPC servers stuck waiting for a lock to get the application ID
> while type converting the map completion events. What's odd is that normally
> getting the application ID should be very cheap, but in this case we're
> type-converting thousands of map completion events for *each* reducer
> connecting. That means we end up type-converting the map completion events
> over 45 million times during the lifetime of the example job (13,000 * 3,500).
> We either need to make the type conversion much cheaper (i.e.: lockless or at
> least read-write locked) or, even better, store the completion events in a
> form that does not require type conversion when serving them up to reducers.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira