[ https://issues.apache.org/jira/browse/MAPREDUCE-5329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13776736#comment-13776736 ]
Siddharth Seth commented on MAPREDUCE-5329: ------------------------------------------- bq. It is true that shuffle-consumer is at job level. However, here we are dealing with shuffle-provider which is an aux-service that serves multiple jobs. Hence, it is not at job level. An AM is per job - and the config being used is really a per AM/job configuration. The config is just saying that this particular job may use an alternate shuffle mechanism - but isn't related to what services will be run on the cluster. The NM would have this configured at a cluster level (equivalent to the TT config). bq. last comment, we already have shuffle.consumer.plugin in mapred-site.xml, wouldn't it will be appropriate to have the shuffle.provider.plugin next to it. This is not critical for me, just let me know what you prefer. I prefer leaving it out. Also it'd be good to have a comment which says that this needs to be able to work with the host:port information provided by the AM (i.e. plugins which require custom location / other configuration are not supported) bq. I'll surround it with ... Shouldn't an attempt be made to initialize plugins which are specified by the job ? Walking over configured NM plugins ends up potentially skipping plugins which the job may have configured, but are not running in the NodeManager. > APPLICATION_INIT is never sent to AuxServices other than the builtin > ShuffleHandler > ----------------------------------------------------------------------------------- > > Key: MAPREDUCE-5329 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-5329 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: mr-am > Affects Versions: 2.1.0-beta, 2.0.6-alpha > Reporter: Avner BenHanoch > Fix For: trunk > > Attachments: MAPREDUCE-5329.patch > > > APPLICATION_INIT is never sent to AuxServices other than the built-in > ShuffleHandler. This means that 3rd party ShuffleProvider(s) will not be > able to function, because APPLICATION_INIT enables the AuxiliaryService to > map jobId->userId. This is needed for properly finding the MOFs of a job per > reducers' requests. > NOTE: The built-in ShuffleHandler does get APPLICATION_INIT events due to > hard-coded expression in hadoop code. The current TaskAttemptImpl.java code > explicitly call: serviceData.put (ShuffleHandler.MAPREDUCE_SHUFFLE_SERVICEID, > ...) and ignores any additional AuxiliaryService. As a result, only the > built-in ShuffleHandler will get APPLICATION_INIT events. Any 3rd party > AuxillaryService will never get APPLICATION_INIT events. > I think a solution can be in one of two ways: > 1. Change TaskAttemptImpl.java to loop on all Auxiliary Services and register > each of them, by calling serviceData.put (…) in loop. > 2. Change AuxServices.java similar to the fix in: MAPREDUCE-2668 > "APPLICATION_STOP is never sent to AuxServices". This means that in case the > 'handle' method gets APPLICATION_INIT event it will demultiplex it to all Aux > Services regardless of the value in event.getServiceID(). > I prefer the 2nd solution. I am welcoming any ideas. I can provide the > needed patch for any option that people like. > See [Pluggable Shuffle in Hadoop > documentation|http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/PluggableShuffleAndPluggableSort.html] -- 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