From 77bdcbdc00522e76f9394c68d769f35c15af09a6 Mon Sep 17 00:00:00 2001 From: jerryshao Date: Fri, 17 Apr 2015 15:08:16 +0800 Subject: [PATCH 1/2] Fix argument validation error --- .../org/apache/spark/deploy/yarn/ClientArguments.scala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala index da6798cb1b279..9fa621cdd258e 100644 --- a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala +++ b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala @@ -103,9 +103,14 @@ private[spark] class ClientArguments(args: Array[String], sparkConf: SparkConf) * This is intended to be called only after the provided arguments have been parsed. */ private def validateArgs(): Unit = { - if (numExecutors <= 0) { + if (numExecutors < 0 || (!isDynamicAllocationEnabled && numExecutors == 0)) { throw new IllegalArgumentException( - "You must specify at least 1 executor!\n" + getUsageMessage()) + s""" + |Number of executors $numExecutors is not legal. + |If dynamic allocation is enable, number of executors should at least be 0. + |If dynamic allocation is not enabled, number of executors should at least be 1. + |${getUsageMessage()} + """.stripMargin) } if (executorCores < sparkConf.getInt("spark.task.cpus", 1)) { throw new SparkException("Executor cores must not be less than " + From 4335da111324a4a94a66cb5a89981f6b4dd67496 Mon Sep 17 00:00:00 2001 From: jerryshao Date: Fri, 17 Apr 2015 16:40:51 +0800 Subject: [PATCH 2/2] Change according to the comments --- .../scala/org/apache/spark/deploy/yarn/ClientArguments.scala | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala index 9fa621cdd258e..1423533470fc0 100644 --- a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala +++ b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala @@ -106,9 +106,8 @@ private[spark] class ClientArguments(args: Array[String], sparkConf: SparkConf) if (numExecutors < 0 || (!isDynamicAllocationEnabled && numExecutors == 0)) { throw new IllegalArgumentException( s""" - |Number of executors $numExecutors is not legal. - |If dynamic allocation is enable, number of executors should at least be 0. - |If dynamic allocation is not enabled, number of executors should at least be 1. + |Number of executors was $numExecutors, but must be at least 1 + |(or 0 if dynamic executor allocation is enabled). |${getUsageMessage()} """.stripMargin) }