[
https://issues.apache.org/jira/browse/MAPREDUCE-5329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13695601#comment-13695601
]
Siddharth Seth commented on MAPREDUCE-5329:
-------------------------------------------
bq. serviceData.put(serviceName,
ShuffleHandler.serializeServiceData(shuffleToken));
Shouldn't this be specific to the shuffle provider ?
Also the alternate provider also works with a single shuffle port and makes use
of job tokens, correct ? Shuffle port being ingrained in several places in the
AM makes this a tough change for other types of providers.
I believe you want to fall back to a different shuffle provider if one does not
work. I assume they're running on different ports - am not sure the fallback
will work in that case.
ContainerLauncherImpl likely needs some change as well - since the
startContainer response contains service data set by the specific provider, and
is deserialized in the AM to figure out the shuffle port. If you use a provider
other than the default ShuffleHandler - the port should be read based on that
providers service id.
bq. Based on your request, I created YARN-886 make APPLICATION_STOP consistent
with APPLICATION_INIT
Thanks
> 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.0.4-alpha
> Reporter: Avner BenHanoch
>
> 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