@@ -40,34 +40,46 @@ if [ -z "$1" ]; then
4040 exit 1
4141fi
4242
43- # If this is a standalone cluster daemon, reset SPARK_JAVA_OPTS and SPARK_MEM to reasonable
44- # values for that; it doesn't need a lot
45- if [ " $1 " = " org.apache.spark.deploy.master.Master" -o " $1 " = " org.apache.spark.deploy.worker.Worker" ]; then
46- SPARK_MEM=${SPARK_DAEMON_MEMORY:- 512m}
47- SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.akka.logLifecycleEvents=true"
48- # Do not overwrite SPARK_JAVA_OPTS environment variable in this script
49- OUR_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS " # Empty by default
50- else
51- OUR_JAVA_OPTS=" $SPARK_JAVA_OPTS "
43+ if [ -n " $SPARK_MEM " ]; then
44+ echo " Warning: SPARK_MEM is deprecated, please use a more specific config option"
45+ echo " (e.g., spark.executor.memory or SPARK_DRIVER_MEMORY)."
5246fi
5347
48+ # Use SPARK_MEM or 512m as the default memory, to be overridden by specific options
49+ DEFAULT_MEM=${SPARK_MEM:- 512m}
50+
51+ SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.akka.logLifecycleEvents=true"
5452
55- # Add java opts for master, worker, executor. The opts maybe null
53+ # Add java opts and memory settings for master, worker, executors, and repl.
5654case " $1 " in
55+ # Master and Worker use SPARK_DAEMON_JAVA_OPTS (and specific opts) + SPARK_DAEMON_MEMORY.
5756 ' org.apache.spark.deploy.master.Master' )
58- OUR_JAVA_OPTS=" $OUR_JAVA_OPTS $SPARK_MASTER_OPTS "
57+ OUR_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS $SPARK_MASTER_OPTS "
58+ OUR_JAVA_MEM=${SPARK_DAEMON_MEMORY:- $DEFAULT_MEM }
5959 ;;
6060 ' org.apache.spark.deploy.worker.Worker' )
61- OUR_JAVA_OPTS=" $OUR_JAVA_OPTS $SPARK_WORKER_OPTS "
61+ OUR_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS $SPARK_WORKER_OPTS "
62+ OUR_JAVA_MEM=${SPARK_DAEMON_MEMORY:- $DEFAULT_MEM }
6263 ;;
64+
65+ # Executors use SPARK_JAVA_OPTS + SPARK_EXECUTOR_MEMORY.
6366 ' org.apache.spark.executor.CoarseGrainedExecutorBackend' )
64- OUR_JAVA_OPTS=" $OUR_JAVA_OPTS $SPARK_EXECUTOR_OPTS "
67+ OUR_JAVA_OPTS=" $SPARK_JAVA_OPTS $SPARK_EXECUTOR_OPTS "
68+ OUR_JAVA_MEM=${SPARK_EXECUTOR_MEMORY:- $DEFAULT_MEM }
6569 ;;
6670 ' org.apache.spark.executor.MesosExecutorBackend' )
67- OUR_JAVA_OPTS=" $OUR_JAVA_OPTS $SPARK_EXECUTOR_OPTS "
71+ OUR_JAVA_OPTS=" $SPARK_JAVA_OPTS $SPARK_EXECUTOR_OPTS "
72+ OUR_JAVA_MEM=${SPARK_EXECUTOR_MEMORY:- $DEFAULT_MEM }
6873 ;;
74+
75+ # All drivers use SPARK_JAVA_OPTS + SPARK_DRIVER_MEMORY. The repl also uses SPARK_REPL_OPTS.
6976 ' org.apache.spark.repl.Main' )
70- OUR_JAVA_OPTS=" $OUR_JAVA_OPTS $SPARK_REPL_OPTS "
77+ OUR_JAVA_OPTS=" $SPARK_JAVA_OPTS $SPARK_REPL_OPTS "
78+ OUR_JAVA_MEM=${SPARK_DRIVER_MEMORY:- $DEFAULT_MEM }
79+ ;;
80+ * )
81+ OUR_JAVA_OPTS=" $SPARK_JAVA_OPTS "
82+ OUR_JAVA_MEM=${SPARK_DRIVER_MEMORY:- $DEFAULT_MEM }
7183 ;;
7284esac
7385
8395 fi
8496fi
8597
86- # Set SPARK_MEM if it isn't already set since we also use it for this process
87- SPARK_MEM=${SPARK_MEM:- 512m}
88- export SPARK_MEM
89-
9098# Set JAVA_OPTS to be able to load native libraries and to set heap size
9199JAVA_OPTS=" $OUR_JAVA_OPTS "
92100JAVA_OPTS=" $JAVA_OPTS -Djava.library.path=$SPARK_LIBRARY_PATH "
93- JAVA_OPTS=" $JAVA_OPTS -Xms$SPARK_MEM -Xmx$SPARK_MEM "
101+ JAVA_OPTS=" $JAVA_OPTS -Xms$OUR_JAVA_MEM -Xmx$OUR_JAVA_MEM "
94102# Load extra JAVA_OPTS from conf/java-opts, if it exists
95103if [ -e " $FWDIR /conf/java-opts" ] ; then
96104 JAVA_OPTS=" $JAVA_OPTS ` cat $FWDIR /conf/java-opts` "
0 commit comments