Uh oh!
There was an error while loading. Please reload this page.
[SPARK-2555] Support configuration spark.scheduler.minRegisteredResourcesRatio in Mesos mode. - #1462
[SPARK-2555] Support configuration spark.scheduler.minRegisteredResourcesRatio in Mesos mode.#1462li-zhihui wants to merge 3 commits into
Conversation
AmplabJenkins
commented
Jul 17, 2014
Can one of the admins verify this patch? |
li-zhihui
commented
Jul 17, 2014
tgravescs
commented
Jul 18, 2014
Did you test it on a cluster? I unfortunately don't have access to one and am not an expert on mesos. Is there a race condition between when the scheduler backend increments totalExpectedExecutors and when we actually do the check to see if we have enough? Meaning in this case we increment it as they come in as resource offers, we start the executors, it registers, then we do the check, so its possible once we get 1 in that totalExpectedExecutors =1 * minRegisteredRatio (say 100) == executorActor.size() (1) even though we really expect say 10 to come in? I think the same thing actually applies in standalone mode too but I missed it in previous pr. |
li-zhihui
commented
Jul 21, 2014
I tested it on a cluster with mesos-0.18.1(fine-grained and coarse-grained), it work well. I think you are right. In fact, user don't have any idea about expected executors in mesos mode (and standalone mode), they only expect CPU cores( |
tgravescs
commented
Jul 21, 2014
cc @kayousterhout as I think she is more familiar with standalone mode and scheduler details. |
tgravescs
commented
Jul 21, 2014
If we change the name of the config you'll need to upmerge as #634 set some defaults on the yarn side. |
kayousterhout
commented
Jul 21, 2014
@tgravescs I actually mentioned this race condition in the previous PR: #900 (comment) . In the future we should try to be more careful about merging things that have un-replied to comments (I'm about to send an email to the dev list about this). @li-zhihui if someone points out a problem in a pull request you submit, the expectation is that it will be fixed when you reply to the comment. Can you please submit a new pull request that fixes the race condition with standalone mode, before we proceed with adding this functionality to Mesos mode? |
tgravescs
commented
Jul 21, 2014
Sorry @kayousterhout I totally missed it, I didn't read close enough and thought it had been addressed. |
kayousterhout
commented
Jul 21, 2014
No worries I should have just made a top-level comment -- the code-level On Mon, Jul 21, 2014 at 2:35 PM, Tom Graves notifications@github.com
|
li-zhihui
commented
Jul 22, 2014
Sorry @tgravescs@kayousterhout I am not aware of the issue's seriousness at that time. thanks @kayousterhout for your coach. |
tnachen
commented
Jul 28, 2014
Are we trying to figure out the top level issue of the race before we get this in? |
li-zhihui
commented
Jul 29, 2014
pwendell
commented
Aug 4, 2014
I'd like to see a version of this patch that simply removes support for this in standalone mode - at least so we can do the comparison. @li-zhihui, why can't a user just write this in their own code? It seems really simple... |
li-zhihui
commented
Aug 4, 2014
@pwendell removing support for this in standalone mode is just keeping totalExpectedExecutors zero. I think it just make user use spark more easily. (And sometimes user isn't aware of the problem unless we show them by docs or conf). Anyway, I think you are the authority on how to make the tradeoff. |
Current code waits until some minimum fraction of expected executors have registered before beginning scheduling. The current code in standalone mode suffers from a race condition (SPARK-2635). This race condition could be fixed, but this functionality is easily achieved by the user (they can use the storage status to determine how many executors are up, as described by @pwendell in apache#1462) so adding the extra complexity to the scheduler code is not worthwile.
kayousterhout
commented
Aug 4, 2014
pwendell
commented
Aug 4, 2014
Okay let me run it by some more people tomorrow and figure it out. |
li-zhihui
commented
Aug 25, 2014
Rollback old commits, add a new commit base on latest code. |
SparkQA
commented
Sep 5, 2014
Can one of the admins verify this patch? |
nchammas
commented
Feb 12, 2015
This PR has gone stale. Do we want to update it? |
li-zhihui
commented
Feb 12, 2015
@pwendell Do we need the feature in mesos mode? I am pleasure to update it. |
andrewor14
commented
Feb 19, 2015
@pwendell@kayousterhout what is the verdict of this? Should we just remove the ratio altogether? What about backward compatibility? |
li-zhihui
commented
Feb 26, 2015
Add some new commits to fix code conflict and some issues. |
…ourcesRatio on docs. The configuration is not supported in mesos mode now. See #1462 Author: Li Zhihui <zhihui.li@intel.com> Closes#4781 from li-zhihui/fixdocconf and squashes the following commits: 63e7a44 [Li Zhihui] Modify default value description for spark.scheduler.minRegisteredResourcesRatio on docs. (cherry picked from commit 10094a5) Signed-off-by: Andrew Or <andrew@databricks.com>
…ourcesRatio on docs. The configuration is not supported in mesos mode now. See #1462 Author: Li Zhihui <zhihui.li@intel.com> Closes#4781 from li-zhihui/fixdocconf and squashes the following commits: 63e7a44 [Li Zhihui] Modify default value description for spark.scheduler.minRegisteredResourcesRatio on docs. (cherry picked from commit 10094a5) Signed-off-by: Andrew Or <andrew@databricks.com>
…ourcesRatio on docs. The configuration is not supported in mesos mode now. See #1462 Author: Li Zhihui <zhihui.li@intel.com> Closes#4781 from li-zhihui/fixdocconf and squashes the following commits: 63e7a44 [Li Zhihui] Modify default value description for spark.scheduler.minRegisteredResourcesRatio on docs.
andrewor14
commented
Feb 26, 2015
@li-zhihui I didn't realize the Given that would you mind closing this? |
In SPARK-1946(PR #900), configuration
spark.scheduler.minRegisteredExecutorsRatiowas introduced(and it was renamedspark.scheduler.minRegisteredResourcesRatioin PR #1525), but it only support Standalone and Yarn mode.This PR try to introduce the configuration to Mesos mode.
In Mesos coarse-grained mode, the configuration is work well.
In Mesos fine-grained mode, the configuration is ignored because executors are dynamic, and SchedulerBackend will print a warning log if the configuration is set.