Uh oh!
There was an error while loading. Please reload this page.
[SPARK-27736][Core][SHUFFLE] Improve handling of FetchFailures caused by ExternalShuffleService losing track of executor registrations - #26272
[SPARK-27736][Core][SHUFFLE] Improve handling of FetchFailures caused by ExternalShuffleService losing track of executor registrations#26272turboFei wants to merge 5 commits into
Conversation
@dongjoon-hyun@HyukjinKwon |
… by ExternalShuffleService losing track of executor registrations
turboFei
commented
Oct 28, 2019
@squito Hi, can you help take a look at this solution? |
turboFei
commented
Oct 28, 2019
Can you clarify the case you are trying to fix this for - what cluster manager, etc? Are you using YARN - if so do you not have node manager recovery enabled? |
Thanks for your reply. |
tgravescs
commented
Oct 28, 2019
so is there a reason you don't just turn that on? it should fix this issue. I would assume if you are running other application types you have the same issue - map reduce and tez for example. |
turboFei
commented
Oct 28, 2019
Thanks for your suggestion. |
squito
commented
Oct 28, 2019
I agree with @tgravescs that yarn's NM recovery should solve this. That said, as Josh noted in the jira, we don't have a better solution for standalone and mesos. At a high level, I think this approach makes sense. |
turboFei
commented
Oct 29, 2019
Thanks a lot, I will complete it later. |
squito
commented
Oct 30, 2019
cc @attilapiros |
turboFei
commented
Oct 31, 2019
I have added UT for ExternalBlockHandler and ExternalShuffleBlockResolver. |
AmplabJenkins
commented
Jan 29, 2020
Can one of the admins verify this patch? |
We're closing this PR because it hasn't been updated in a while. This isn't a judgement on the merit of the PR in any way. It's just a way of keeping the PR queue manageable. |
What changes were proposed in this pull request?
As described in https://issues.apache.org/jira/browse/SPARK-27736, if a single external shuffle service process reboots and fails to recover the list of registered executors, a lot FetchFailedExceptions would be thrown and it would cause application failed eventually.
In this PR, I let externalBlockClient can query whether executors are registered on the External Shuffle Service.
And when fetchFailedException thrown, I will query whether the executors on this host are registered.
If not, unregister relative output.
Why are the changes needed?
This PR improves handling of FetchFailures caused by ExternalShuffleService losing track of executor registrations
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Added UT.