44
55exec 2>&1
66
7- export APPLICATION_WEB_PROXY_BASE=" ${DISPATCHER_UI_WEB_PROXY_BASE} "
8-
9- cd /opt/spark/dist
10-
11- export SPARK_DAEMON_JAVA_OPTS=" "
12- if [ " ${DCOS_SERVICE_NAME} " != " spark" ]; then
13- export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.deploy.zookeeper.dir=/spark_mesos_dispatcher_${DCOS_SERVICE_NAME} "
14- fi
15-
16- if [ " $SPARK_DISPATCHER_MESOS_ROLE " != " " ]; then
17- export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.mesos.role=$SPARK_DISPATCHER_MESOS_ROLE "
18- fi
19-
20- if [ " $SPARK_DISPATCHER_MESOS_PRINCIPAL " != " " ]; then
21- export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.mesos.principal=$SPARK_DISPATCHER_MESOS_PRINCIPAL "
22- fi
23-
24- if [ " $SPARK_DISPATCHER_MESOS_SECRET " != " " ]; then
25- export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.mesos.secret=$SPARK_DISPATCHER_MESOS_SECRET "
26- fi
27-
28-
29-
30- HISTORY_SERVER_CONF=" "
31- if [ " ${ENABLE_HISTORY_SERVER:= false} " = " true" ]; then
32- HISTORY_SERVER_CONF=" spark.mesos.historyServer.url=${HISTORY_SERVER_WEB_PROXY_BASE} "
33- fi
34-
35- sed " s,<HISTORY_SERVER_CONF>,${HISTORY_SERVER_CONF} ," \
36- conf/mesos-cluster-dispatcher.properties.template > conf/mesos-cluster-dispatcher.properties
7+ function export_daemon_opts() {
8+ export SPARK_DAEMON_JAVA_OPTS=" "
9+ if [ " ${DCOS_SERVICE_NAME} " != " spark" ]; then
10+ export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.deploy.zookeeper.dir=/spark_mesos_dispatcher_${DCOS_SERVICE_NAME} "
11+ fi
12+
13+ if [ " $SPARK_DISPATCHER_MESOS_ROLE " != " " ]; then
14+ export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.mesos.role=$SPARK_DISPATCHER_MESOS_ROLE "
15+ fi
16+
17+ if [ " $SPARK_DISPATCHER_MESOS_PRINCIPAL " != " " ]; then
18+ export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.mesos.principal=$SPARK_DISPATCHER_MESOS_PRINCIPAL "
19+ fi
20+
21+ if [ " $SPARK_DISPATCHER_MESOS_SECRET " != " " ]; then
22+ export SPARK_DAEMON_JAVA_OPTS=" $SPARK_DAEMON_JAVA_OPTS -Dspark.mesos.secret=$SPARK_DISPATCHER_MESOS_SECRET "
23+ fi
24+ }
3725
38- sed " s,<LOG_LEVEL>,${SPARK_LOG_LEVEL} ," \
39- conf/log4j.properties.template > conf/log4j.properties
26+ function set_log_level() {
27+ sed " s,<LOG_LEVEL>,${SPARK_LOG_LEVEL} ," \
28+ /opt/spark/dist/conf/log4j.properties.template > /opt/spark/dist/conf/log4j.properties
29+ }
4030
4131function add_if_non_empty() {
4232 if [ -n " $2 " ]; then
43- echo " $1 =$2 " >> conf/mesos-cluster-dispatcher.properties
33+ echo " $1 =$2 " >> /opt/spark/dist/ conf/mesos-cluster-dispatcher.properties
4434 fi
4535}
4636
47- if [ " ${SPARK_SSL_KEYSTOREBASE64} " != " " ]; then
48- echo " ${SPARK_SSL_KEYSTOREBASE64} " | base64 -d > /tmp/dispatcher-keystore.jks
49- add_if_non_empty spark.ssl.keyStore /tmp/dispatcher-keystore.jks
50- fi
37+ function configure_properties() {
38+ HISTORY_SERVER_CONF=" "
39+ if [ " ${ENABLE_HISTORY_SERVER:= false} " = " true" ]; then
40+ HISTORY_SERVER_CONF=" spark.mesos.historyServer.url=${HISTORY_SERVER_WEB_PROXY_BASE} "
41+ fi
42+
43+ sed " s,<HISTORY_SERVER_CONF>,${HISTORY_SERVER_CONF} ," \
44+ /opt/spark/dist/conf/mesos-cluster-dispatcher.properties.template > /opt/spark/dist/conf/mesos-cluster-dispatcher.properties
45+
46+ if [ " ${SPARK_SSL_KEYSTOREBASE64} " != " " ]; then
47+ echo " ${SPARK_SSL_KEYSTOREBASE64} " | base64 -d > /tmp/dispatcher-keystore.jks
48+ add_if_non_empty spark.ssl.keyStore /tmp/dispatcher-keystore.jks
49+ fi
50+
51+ if [ " ${SPARK_SSL_TRUSTSTOREBASE64} " != " " ]; then
52+ echo " ${SPARK_SSL_TRUSTSTOREBASE64} " | base64 -d > /tmp/dispatcher-truststore.jks
53+ add_if_non_empty spark.ssl.trustStore /tmp/dispatcher-truststore.jks
54+ fi
55+
56+ add_if_non_empty spark.ssl.enabled " ${SPARK_SSL_ENABLED} "
57+ add_if_non_empty spark.ssl.keyPassword " ${SPARK_SSL_KEYPASSWORD} "
58+ add_if_non_empty spark.ssl.keyStorePassword " ${SPARK_SSL_KEYSTOREPASSWORD} "
59+ add_if_non_empty spark.ssl.trustStorePassword " ${SPARK_SSL_TRUSTSTOREPASSWORD} "
60+ add_if_non_empty spark.ssl.protocol " ${SPARK_SSL_PROTOCOL} "
61+ add_if_non_empty spark.ssl.enabledAlgorithms " ${SPARK_SSL_ENABLEDALGORITHMS} "
62+
63+ # write defaults
64+ if [ " ${DCOS_SERVICE_ACCOUNT_CREDENTIAL} " != " " ]; then
65+ # write defaults using both property names, since 2.0 uses one and 2.1 uses the other
66+ echo " spark.mesos.dispatcher.driverDefault.spark.mesos.driverEnv.MESOS_MODULES=file:///opt/mesosphere/etc/mesos-scheduler-modules/dcos_authenticatee_module.json" >> /opt/spark/dist/conf/mesos-cluster-dispatcher.properties
67+ echo " spark.mesos.cluster.taskProperty.spark.mesos.driverEnv.MESOS_MODULES=file:///opt/mesosphere/etc/mesos-scheduler-modules/dcos_authenticatee_module.json" >> /opt/spark/dist/conf/mesos-cluster-dispatcher.properties
68+
69+ echo " spark.mesos.dispatcher.driverDefault.spark.mesos.driverEnv.MESOS_AUTHENTICATEE=com_mesosphere_dcos_ClassicRPCAuthenticatee" >> /opt/spark/dist/conf/mesos-cluster-dispatcher.properties
70+ echo " spark.mesos.cluster.taskProperty.spark.mesos.driverEnv.MESOS_AUTHENTICATEE=com_mesosphere_dcos_ClassicRPCAuthenticatee" >> /opt/spark/dist/conf/mesos-cluster-dispatcher.properties
71+
72+ echo " spark.mesos.dispatcher.driverDefault.spark.mesos.principal=${SPARK_DISPATCHER_MESOS_PRINCIPAL} " >> /opt/spark/dist/conf/mesos-cluster-dispatcher.properties
73+ echo " spark.mesos.cluster.taskProperty.spark.mesos.principal=${SPARK_DISPATCHER_MESOS_PRINCIPAL} " >> /opt/spark/dist/conf/mesos-cluster-dispatcher.properties
74+ fi
75+ }
5176
52- if [ " ${SPARK_SSL_TRUSTSTOREBASE64} " != " " ]; then
53- echo " ${SPARK_SSL_TRUSTSTOREBASE64} " | base64 -d > /tmp/dispatcher-truststore.jks
54- add_if_non_empty spark.ssl.trustStore /tmp/dispatcher-truststore.jks
55- fi
5677
57- add_if_non_empty spark.ssl.enabled " ${SPARK_SSL_ENABLED} "
58- add_if_non_empty spark.ssl.keyPassword " ${SPARK_SSL_KEYPASSWORD} "
59- add_if_non_empty spark.ssl.keyStorePassword " ${SPARK_SSL_KEYSTOREPASSWORD} "
60- add_if_non_empty spark.ssl.trustStorePassword " ${SPARK_SSL_TRUSTSTOREPASSWORD} "
61- add_if_non_empty spark.ssl.protocol " ${SPARK_SSL_PROTOCOL} "
62- add_if_non_empty spark.ssl.enabledAlgorithms " ${SPARK_SSL_ENABLEDALGORITHMS} "
78+ export APPLICATION_WEB_PROXY_BASE=" ${DISPATCHER_UI_WEB_PROXY_BASE} "
79+ set_log_level
80+ export_daemon_opts
81+ configure_properties
82+ ZK=" master.mesos:2181"
6383
64- export ZK=" master.mesos:2181"
6584exec /opt/spark/dist/bin/spark-class \
6685 org.apache.spark.deploy.mesos.MesosClusterDispatcher \
6786 --port " ${DISPATCHER_PORT} " \
@@ -70,4 +89,4 @@ exec /opt/spark/dist/bin/spark-class \
7089 --zk " ${ZK} " \
7190 --host " ${HOST} " \
7291 --name " ${DCOS_SERVICE_NAME} " \
73- --properties-file " conf/mesos-cluster-dispatcher.properties"
92+ --properties-file " /opt/spark/dist/ conf/mesos-cluster-dispatcher.properties"
0 commit comments