Skip to content

Commit df64fa7

Browse files
author
Marcelo Vanzin
committed
[SPARK-20814][MESOS] Restore support for spark.executor.extraClassPath.
Restore code that was removed as part of SPARK-17979, but instead of using the deprecated env variable name to propagate the class path, use a new one. Verified by running "./bin/spark-class o.a.s.executor.CoarseGrainedExecutorBackend" manually. Author: Marcelo Vanzin <[email protected]> Closes #18037 from vanzin/SPARK-20814.
1 parent 4be3375 commit df64fa7

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

launcher/src/main/java/org/apache/spark/launcher/SparkClassCommandBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,12 @@ public List<String> buildCommand(Map<String, String> env)
6868
case "org.apache.spark.executor.CoarseGrainedExecutorBackend":
6969
javaOptsKeys.add("SPARK_EXECUTOR_OPTS");
7070
memKey = "SPARK_EXECUTOR_MEMORY";
71+
extraClassPath = getenv("SPARK_EXECUTOR_CLASSPATH");
7172
break;
7273
case "org.apache.spark.executor.MesosExecutorBackend":
7374
javaOptsKeys.add("SPARK_EXECUTOR_OPTS");
7475
memKey = "SPARK_EXECUTOR_MEMORY";
76+
extraClassPath = getenv("SPARK_EXECUTOR_CLASSPATH");
7577
break;
7678
case "org.apache.spark.deploy.mesos.MesosClusterDispatcher":
7779
javaOptsKeys.add("SPARK_DAEMON_JAVA_OPTS");

resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackend.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,11 @@ private[spark] class MesosCoarseGrainedSchedulerBackend(
185185

186186
def createCommand(offer: Offer, numCores: Int, taskId: String): CommandInfo = {
187187
val environment = Environment.newBuilder()
188+
val extraClassPath = conf.getOption("spark.executor.extraClassPath")
189+
extraClassPath.foreach { cp =>
190+
environment.addVariables(
191+
Environment.Variable.newBuilder().setName("SPARK_EXECUTOR_CLASSPATH").setValue(cp).build())
192+
}
188193
val extraJavaOpts = conf.get("spark.executor.extraJavaOptions", "")
189194

190195
// Set the environment variable through a command prefix

resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackend.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ private[spark] class MesosFineGrainedSchedulerBackend(
106106
throw new SparkException("Executor Spark home `spark.mesos.executor.home` is not set!")
107107
}
108108
val environment = Environment.newBuilder()
109+
sc.conf.getOption("spark.executor.extraClassPath").foreach { cp =>
110+
environment.addVariables(
111+
Environment.Variable.newBuilder().setName("SPARK_EXECUTOR_CLASSPATH").setValue(cp).build())
112+
}
109113
val extraJavaOpts = sc.conf.getOption("spark.executor.extraJavaOptions").getOrElse("")
110114

111115
val prefixEnv = sc.conf.getOption("spark.executor.extraLibraryPath").map { p =>

0 commit comments

Comments
 (0)