aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorjerryshao <sshao@hortonworks.com>2015-12-15 18:24:23 -0800
committerAndrew Or <andrew@databricks.com>2015-12-15 18:24:23 -0800
commit63ccdef81329e785807f37b4e918a9247fc70e3c (patch)
tree593d610979db1106498066faf821bf6839508060 /core
parent765a488494dac0ed38d2b81742c06467b79d96b2 (diff)
downloadspark-63ccdef81329e785807f37b4e918a9247fc70e3c.tar.gz
spark-63ccdef81329e785807f37b4e918a9247fc70e3c.tar.bz2
spark-63ccdef81329e785807f37b4e918a9247fc70e3c.zip
[SPARK-10123][DEPLOY] Support specifying deploy mode from configuration
Please help to review, thanks a lot. Author: jerryshao <sshao@hortonworks.com> Closes #10195 from jerryshao/SPARK-10123.
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/org/apache/spark/deploy/SparkSubmitArguments.scala5
-rw-r--r--core/src/test/scala/org/apache/spark/deploy/SparkSubmitSuite.scala41
2 files changed, 45 insertions, 1 deletions
diff --git a/core/src/main/scala/org/apache/spark/deploy/SparkSubmitArguments.scala b/core/src/main/scala/org/apache/spark/deploy/SparkSubmitArguments.scala
index 18a1c52ae5..915ef81b4e 100644
--- a/core/src/main/scala/org/apache/spark/deploy/SparkSubmitArguments.scala
+++ b/core/src/main/scala/org/apache/spark/deploy/SparkSubmitArguments.scala
@@ -176,7 +176,10 @@ private[deploy] class SparkSubmitArguments(args: Seq[String], env: Map[String, S
packages = Option(packages).orElse(sparkProperties.get("spark.jars.packages")).orNull
packagesExclusions = Option(packagesExclusions)
.orElse(sparkProperties.get("spark.jars.excludes")).orNull
- deployMode = Option(deployMode).orElse(env.get("DEPLOY_MODE")).orNull
+ deployMode = Option(deployMode)
+ .orElse(sparkProperties.get("spark.submit.deployMode"))
+ .orElse(env.get("DEPLOY_MODE"))
+ .orNull
numExecutors = Option(numExecutors)
.getOrElse(sparkProperties.get("spark.executor.instances").orNull)
keytab = Option(keytab).orElse(sparkProperties.get("spark.yarn.keytab")).orNull
diff --git a/core/src/test/scala/org/apache/spark/deploy/SparkSubmitSuite.scala b/core/src/test/scala/org/apache/spark/deploy/SparkSubmitSuite.scala
index d494b0caab..2626f5a16d 100644
--- a/core/src/test/scala/org/apache/spark/deploy/SparkSubmitSuite.scala
+++ b/core/src/test/scala/org/apache/spark/deploy/SparkSubmitSuite.scala
@@ -136,6 +136,47 @@ class SparkSubmitSuite
appArgs.childArgs should be (Seq("--master", "local", "some", "--weird", "args"))
}
+ test("specify deploy mode through configuration") {
+ val clArgs = Seq(
+ "--master", "yarn",
+ "--conf", "spark.submit.deployMode=client",
+ "--class", "org.SomeClass",
+ "thejar.jar"
+ )
+ val appArgs = new SparkSubmitArguments(clArgs)
+ val (_, _, sysProps, _) = prepareSubmitEnvironment(appArgs)
+
+ appArgs.deployMode should be ("client")
+ sysProps("spark.submit.deployMode") should be ("client")
+
+ // Both cmd line and configuration are specified, cmdline option takes the priority
+ val clArgs1 = Seq(
+ "--master", "yarn",
+ "--deploy-mode", "cluster",
+ "--conf", "spark.submit.deployMode=client",
+ "-class", "org.SomeClass",
+ "thejar.jar"
+ )
+ val appArgs1 = new SparkSubmitArguments(clArgs1)
+ val (_, _, sysProps1, _) = prepareSubmitEnvironment(appArgs1)
+
+ appArgs1.deployMode should be ("cluster")
+ sysProps1("spark.submit.deployMode") should be ("cluster")
+
+ // Neither cmdline nor configuration are specified, client mode is the default choice
+ val clArgs2 = Seq(
+ "--master", "yarn",
+ "--class", "org.SomeClass",
+ "thejar.jar"
+ )
+ val appArgs2 = new SparkSubmitArguments(clArgs2)
+ appArgs2.deployMode should be (null)
+
+ val (_, _, sysProps2, _) = prepareSubmitEnvironment(appArgs2)
+ appArgs2.deployMode should be ("client")
+ sysProps2("spark.submit.deployMode") should be ("client")
+ }
+
test("handles YARN cluster mode") {
val clArgs = Seq(
"--deploy-mode", "cluster",