Uh oh!
There was an error while loading. Please reload this page.
[SPARK-5095] [Mesos] Support launching multiple mesos executors in coarse grained mesos mode. - #10993
[SPARK-5095] [Mesos] Support launching multiple mesos executors in coarse grained mesos mode.#10993mgummelt wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
AFAICT, this is never used, so I removed it.
SparkQA
commented
Jan 30, 2016
Test build #50419 has finished for PR 10993 at commit
|
There was a problem hiding this comment.
Not a big issue, but I wonder if slaveInfo would be a better name. Also, a one-line comment to explain what the key is.
andrewor14
commented
Feb 1, 2016
Looks like this is failing real tests |
andrewor14
commented
Feb 1, 2016
Also, have you had a chance to test this with cluster mode and/or with dynamic allocation? |
f421133 to
318486eComparemgummelt
commented
Feb 1, 2016
I made an update that should fix the test. I've tested in cluster mode, but not with dynamic allocation. Though I have added some unit tests that cover dynamic allocation. I'll see about setting up dynamic allocation. |
SparkQA
commented
Feb 2, 2016
Test build #50506 has finished for PR 10993 at commit
|
dragos
commented
Feb 2, 2016
I didn't have time to look at this in detail, I'll do so this afternoon. |
There was a problem hiding this comment.
I know this is not your code, but it would be good to document this. Why do we filter out offers for 5 seconds on the offers we use?
There was a problem hiding this comment.
I was thinking about this when I ran into it. The default is actually 5: https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto#L1211
So I'll just remove it.
dragos
commented
Feb 2, 2016
@mgummelt this looks really good! I have a few comments. I still have to run this PR with dynamic allocation and see it in action! |
318486e to
0a1181aCompareSparkQA
commented
Feb 3, 2016
Test build #50608 has finished for PR 10993 at commit
|
Astralidea
commented
Feb 3, 2016
@mgummelt If I want to scheduler deploy with : Limiting a slave can only start one executor, how to do that? should I can have another config like spark.executor.maxperslave=1? |
There was a problem hiding this comment.
I find it non-productive to quibble over a name. That being said, this method doesn't just get tasks from somewhere. It produces them itself, based on a round-robin scheduling strategy over the given offers. I don't think get is the best verb to describe that action.
mgummelt
commented
Feb 5, 2016
@andrewor14 Glad to be here! Flaky tests or no I think all concerns have been addressed except for dynamic allocation testing, which seems to be broken entirely: SPARK-12583 @dragos Any other comments? |
SparkQA
commented
Feb 5, 2016
Test build #50833 has finished for PR 10993 at commit
|
dragos
commented
Feb 6, 2016
LGTM! Great work, @mgummelt! |
There was a problem hiding this comment.
This needs to be moved in the stateLock right?
There was a problem hiding this comment.
Moved, but I don't understand why the mesos methods are synchronized in the first place. They should only be called by a single thread (the driver thread).
There was a problem hiding this comment.
The ExecutionAllocationManager, used when dynamic allocation is enabled, runs on a different thread. Not sure if this particular method can run on different threads, but there's at least the issue of visibility.
tnachen
commented
Feb 8, 2016
Just one comment, overall LGTM |
Support spark.executor.cores on Mesos.
7e3f39d to
ecad77aCompareandrewor14
commented
Feb 9, 2016
retest this please |
SparkQA
commented
Feb 9, 2016
Test build #50985 has finished for PR 10993 at commit
|
SparkQA
commented
Feb 9, 2016
Test build #50984 has finished for PR 10993 at commit
|
| // SlaveID -> Slave | ||
| // This map accumulates entries for the duration of the job. Slaves are never deleted, because | ||
| // we need to maintain e.g. failure state and connection state. | ||
| private val slaves = new HashMap[String, Slave] |
There was a problem hiding this comment.
elsewhere in Spark we would call this class SlaveInfo instead of just Slave, so we don't confuse it with the Mesos Slave
andrewor14
commented
Feb 10, 2016
LGTM merging into master. @mgummelt feel free to address the remainder of the comments in a follow-up patch. |
mgummelt
commented
Feb 10, 2016
Thanks for merging. Will this go into 1.6.1, or not until 2.0? |
andrewor14
commented
Feb 10, 2016
This is a big new feature. It will not go into a maintenance release (1.6.1). |
andrewor14
commented
Feb 11, 2016
@mgummelt looks like this caused a flaky test: Do you have the bandwidth to fix it quickly? If not I'll just revert this patch for now and we can resubmit it later. |
mgummelt
commented
Feb 11, 2016
looking into it |
Astralidea
commented
Feb 11, 2016
@mgummelt Great Work! I think this feature will allow more people to use mesos. |
mgummelt
commented
Feb 11, 2016
@andrewor14 I haven't found the problem, but here's a PR to remove the test in the interim #11164 It's a strange test to be flaky. It's very simple. |
mgummelt
commented
Feb 11, 2016
Ah, I see the issue. There's a thread causing a race. I won't be able to fix until tomorrow, though. |
…rse grained mesos mode. This is the next iteration of tnachen's previous PR: apache#4027 In that PR, we resolved with andrewor14 and pwendell to implement the Mesos scheduler's support of `spark.executor.cores` to be consistent with YARN and Standalone. This PR implements that resolution. This PR implements two high-level features. These two features are co-dependent, so they're implemented both here: - Mesos support for spark.executor.cores - Multiple executors per slave We at Mesosphere have been working with Typesafe on a Spark/Mesos integration test suite: https://github.com/typesafehub/mesos-spark-integration-tests, which passes for this PR. The contribution is my original work and I license the work to the project under the project's open source license. Author: Michael Gummelt <mgummelt@mesosphere.io> Closesapache#10993 from mgummelt/executor_sizing.
…rse grained mesos mode. This is the next iteration of tnachen's previous PR: apache#4027 In that PR, we resolved with andrewor14 and pwendell to implement the Mesos scheduler's support of `spark.executor.cores` to be consistent with YARN and Standalone. This PR implements that resolution. This PR implements two high-level features. These two features are co-dependent, so they're implemented both here: - Mesos support for spark.executor.cores - Multiple executors per slave We at Mesosphere have been working with Typesafe on a Spark/Mesos integration test suite: https://github.com/typesafehub/mesos-spark-integration-tests, which passes for this PR. The contribution is my original work and I license the work to the project under the project's open source license. Author: Michael Gummelt <mgummelt@mesosphere.io> Closesapache#10993 from mgummelt/executor_sizing.
…rse grained mesos mode. This is the next iteration of tnachen's previous PR: apache#4027 In that PR, we resolved with andrewor14 and pwendell to implement the Mesos scheduler's support of `spark.executor.cores` to be consistent with YARN and Standalone. This PR implements that resolution. This PR implements two high-level features. These two features are co-dependent, so they're implemented both here: - Mesos support for spark.executor.cores - Multiple executors per slave We at Mesosphere have been working with Typesafe on a Spark/Mesos integration test suite: https://github.com/typesafehub/mesos-spark-integration-tests, which passes for this PR. The contribution is my original work and I license the work to the project under the project's open source license. Author: Michael Gummelt <mgummelt@mesosphere.io> Closesapache#10993 from mgummelt/executor_sizing.
This is the next iteration of @tnachen's previous PR: #4027
In that PR, we resolved with @andrewor14 and @pwendell to implement the Mesos scheduler's support of
spark.executor.coresto be consistent with YARN and Standalone. This PR implements that resolution.This PR implements two high-level features. These two features are co-dependent, so they're implemented both here:
We at Mesosphere have been working with Typesafe on a Spark/Mesos integration test suite: https://github.com/typesafehub/mesos-spark-integration-tests, which passes for this PR.
The contribution is my original work and I license the work to the project under the project's open source license.