From 08fd7880337289f796151f6af3100bcc44130386 Mon Sep 17 00:00:00 2001 From: Andrew Or Date: Wed, 20 Aug 2014 00:22:56 -0700 Subject: [PATCH] Warn against external usages of SparkSubmitDriverBootstrapper --- bin/spark-class | 3 ++- .../spark/deploy/SparkSubmitDriverBootstrapper.scala | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bin/spark-class b/bin/spark-class index 629843333f2cc..1071eb9a953dc 100755 --- a/bin/spark-class +++ b/bin/spark-class @@ -167,7 +167,8 @@ if [ -n "$SPARK_SUBMIT_BOOTSTRAP_DRIVER" ]; then export CLASSPATH export JAVA_OPTS export OUR_JAVA_MEM - shift + export SPARK_CLASS=1 + shift # Ignore main class and use our own exec "$RUNNER" org.apache.spark.deploy.SparkSubmitDriverBootstrapper "$@" else # Note: The format of this command is closely echoed in SparkSubmitDriverBootstrapper.scala diff --git a/core/src/main/scala/org/apache/spark/deploy/SparkSubmitDriverBootstrapper.scala b/core/src/main/scala/org/apache/spark/deploy/SparkSubmitDriverBootstrapper.scala index bd6767bc78827..af607e6a4a065 100644 --- a/core/src/main/scala/org/apache/spark/deploy/SparkSubmitDriverBootstrapper.scala +++ b/core/src/main/scala/org/apache/spark/deploy/SparkSubmitDriverBootstrapper.scala @@ -37,6 +37,13 @@ private[spark] object SparkSubmitDriverBootstrapper { // Any changes made there must be reflected in this file. def main(args: Array[String]): Unit = { + + // This should be called only from `bin/spark-class` + if (!sys.env.contains("SPARK_CLASS")) { + System.err.println("SparkSubmitDriverBootstrapper must be called from `bin/spark-class`!") + System.exit(1) + } + val submitArgs = args val runner = sys.env("RUNNER") val classpath = sys.env("CLASSPATH")