diff options
author | CodingCat <zhunansjtu@gmail.com> | 2015-04-14 13:32:06 -0700 |
---|---|---|
committer | Andrew Or <andrew@databricks.com> | 2015-04-14 13:32:06 -0700 |
commit | 8f8dc45f6d4c8d7b740eaa3d2ea09d0b531af9dd (patch) | |
tree | ad4d534fed5b6140dfeb65d189ccc44239ff5f02 /docs | |
parent | 25998e4d73bcc95ac85d9af71adfdc726ec89568 (diff) | |
download | spark-8f8dc45f6d4c8d7b740eaa3d2ea09d0b531af9dd.tar.gz spark-8f8dc45f6d4c8d7b740eaa3d2ea09d0b531af9dd.tar.bz2 spark-8f8dc45f6d4c8d7b740eaa3d2ea09d0b531af9dd.zip |
SPARK-1706: Allow multiple executors per worker in Standalone mode
resubmit of https://github.com/apache/spark/pull/636 for a totally different algorithm
https://issues.apache.org/jira/browse/SPARK-1706
In current implementation, the user has to start multiple workers in a server for starting multiple executors in a server, which introduces additional overhead due to the more JVM processes...
In this patch, I changed the scheduling logic in master to enable the user to start multiple executor processes within the same JVM process.
1. user configure spark.executor.maxCoreNumPerExecutor to suggest the maximum core he/she would like to allocate to each executor
2. Master assigns the executors to the workers with the major consideration on the memoryPerExecutor and the worker.freeMemory, and tries to allocate as many as possible cores to the executor ```min(min(memoryPerExecutor, worker.freeCore), maxLeftCoreToAssign)``` where ```maxLeftCoreToAssign = maxExecutorCanAssign * maxCoreNumPerExecutor```
---------------------------------------
Other small changes include
change memoryPerSlave in ApplicationDescription to memoryPerExecutor, as "Slave" is overrided to represent both worker and executor in the documents... (we have some discussion on this before?)
Author: CodingCat <zhunansjtu@gmail.com>
Closes #731 from CodingCat/SPARK-1706-2 and squashes the following commits:
6dee808 [CodingCat] change filter predicate
fbeb7e5 [CodingCat] address the comments
940cb42 [CodingCat] avoid unnecessary allocation
b8ca561 [CodingCat] revert a change
45967b4 [CodingCat] remove unused method
2eeff77 [CodingCat] stylistic fixes
12a1b32 [CodingCat] change the semantic of coresPerExecutor to exact core number
f035423 [CodingCat] stylistic fix
d9c1685 [CodingCat] remove unused var
f595bd6 [CodingCat] recover some unintentional changes
63b3df9 [CodingCat] change the description of the parameter in the submit script
4cf61f1 [CodingCat] improve the code and docs
ff011e2 [CodingCat] start multiple executors on the worker by rewriting startExeuctor logic
2c2bcc5 [CodingCat] fix wrong usage info
497ec2c [CodingCat] address andrew's comments
878402c [CodingCat] change the launching executor code
f64a28d [CodingCat] typo fix
387f4ec [CodingCat] bug fix
35c462c [CodingCat] address Andrew's comments
0b64fea [CodingCat] fix compilation issue
19d3da7 [CodingCat] address the comments
5b81466 [CodingCat] remove outdated comments
ec7d421 [CodingCat] test commit
e5efabb [CodingCat] more java docs and consolidate canUse function
a26096d [CodingCat] stylistic fix
a5d629a [CodingCat] java doc
b34ec0c [CodingCat] make master support multiple executors per worker
Diffstat (limited to 'docs')
-rw-r--r-- | docs/configuration.md | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/docs/configuration.md b/docs/configuration.md index 7169ec295e..d9e9e67026 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -724,6 +724,17 @@ Apart from these, the following properties are also available, and may be useful </td> </tr> <tr> + <td><code>spark.executor.cores</code></td> + <td>1 in YARN mode, all the available cores on the worker in standalone mode.</td> + <td> + The number of cores to use on each executor. For YARN and standalone mode only. + + In standalone mode, setting this parameter allows an application to run multiple executors on + the same worker, provided that there are enough cores on that worker. Otherwise, only one + executor per application will run on each worker. + </td> +</tr> +<tr> <td><code>spark.default.parallelism</code></td> <td> For distributed shuffle operations like <code>reduceByKey</code> and <code>join</code>, the |