2014-03-29 17:41:36 -04:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
#
|
|
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
|
|
# this work for additional information regarding copyright ownership.
|
|
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
|
# (the "License"); you may not use this file except in compliance with
|
|
|
|
# the License. You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
#
|
|
|
|
|
2014-08-27 01:52:16 -04:00
|
|
|
# NOTE: Any changes in this file must be reflected in SparkSubmitDriverBootstrapper.scala!
|
2014-08-20 18:01:47 -04:00
|
|
|
|
2014-09-08 13:24:15 -04:00
|
|
|
export SPARK_HOME="$(cd "`dirname "$0"`"/..; pwd)"
|
2014-05-01 04:15:51 -04:00
|
|
|
ORIG_ARGS=("$@")
|
2014-03-29 17:41:36 -04:00
|
|
|
|
2014-11-18 16:37:21 -05:00
|
|
|
# Set COLUMNS for progress bar
|
|
|
|
export COLUMNS=`tput cols`
|
|
|
|
|
2014-03-29 17:41:36 -04:00
|
|
|
while (($#)); do
|
2014-04-25 02:59:16 -04:00
|
|
|
if [ "$1" = "--deploy-mode" ]; then
|
2014-08-20 18:01:47 -04:00
|
|
|
SPARK_SUBMIT_DEPLOY_MODE=$2
|
|
|
|
elif [ "$1" = "--properties-file" ]; then
|
|
|
|
SPARK_SUBMIT_PROPERTIES_FILE=$2
|
2014-04-25 02:59:16 -04:00
|
|
|
elif [ "$1" = "--driver-memory" ]; then
|
2014-08-20 18:01:47 -04:00
|
|
|
export SPARK_SUBMIT_DRIVER_MEMORY=$2
|
2014-04-25 02:59:16 -04:00
|
|
|
elif [ "$1" = "--driver-library-path" ]; then
|
2014-04-28 20:29:22 -04:00
|
|
|
export SPARK_SUBMIT_LIBRARY_PATH=$2
|
2014-04-25 02:59:16 -04:00
|
|
|
elif [ "$1" = "--driver-class-path" ]; then
|
2014-04-28 20:29:22 -04:00
|
|
|
export SPARK_SUBMIT_CLASSPATH=$2
|
2014-04-25 02:59:16 -04:00
|
|
|
elif [ "$1" = "--driver-java-options" ]; then
|
2014-04-28 20:29:22 -04:00
|
|
|
export SPARK_SUBMIT_OPTS=$2
|
2015-01-08 14:45:42 -05:00
|
|
|
elif [ "$1" = "--master" ]; then
|
|
|
|
export MASTER=$2
|
2014-03-29 17:41:36 -04:00
|
|
|
fi
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
2015-01-09 20:10:02 -05:00
|
|
|
if [ -z "$SPARK_CONF_DIR" ]; then
|
|
|
|
export SPARK_CONF_DIR="$SPARK_HOME/conf"
|
|
|
|
fi
|
|
|
|
DEFAULT_PROPERTIES_FILE="$SPARK_CONF_DIR/spark-defaults.conf"
|
2015-01-08 14:45:42 -05:00
|
|
|
if [ "$MASTER" == "yarn-cluster" ]; then
|
|
|
|
SPARK_SUBMIT_DEPLOY_MODE=cluster
|
|
|
|
fi
|
2014-08-20 18:01:47 -04:00
|
|
|
export SPARK_SUBMIT_DEPLOY_MODE=${SPARK_SUBMIT_DEPLOY_MODE:-"client"}
|
|
|
|
export SPARK_SUBMIT_PROPERTIES_FILE=${SPARK_SUBMIT_PROPERTIES_FILE:-"$DEFAULT_PROPERTIES_FILE"}
|
|
|
|
|
|
|
|
# For client mode, the driver will be launched in the same JVM that launches
|
|
|
|
# SparkSubmit, so we may need to read the properties file for any extra class
|
|
|
|
# paths, library paths, java options and memory early on. Otherwise, it will
|
|
|
|
# be too late by the time the driver JVM has started.
|
2014-05-11 21:17:34 -04:00
|
|
|
|
2014-08-20 18:01:47 -04:00
|
|
|
if [[ "$SPARK_SUBMIT_DEPLOY_MODE" == "client" && -f "$SPARK_SUBMIT_PROPERTIES_FILE" ]]; then
|
|
|
|
# Parse the properties file only if the special configs exist
|
|
|
|
contains_special_configs=$(
|
|
|
|
grep -e "spark.driver.extra*\|spark.driver.memory" "$SPARK_SUBMIT_PROPERTIES_FILE" | \
|
|
|
|
grep -v "^[[:space:]]*#"
|
|
|
|
)
|
|
|
|
if [ -n "$contains_special_configs" ]; then
|
|
|
|
export SPARK_SUBMIT_BOOTSTRAP_DRIVER=1
|
|
|
|
fi
|
2014-03-29 17:41:36 -04:00
|
|
|
fi
|
|
|
|
|
2014-09-08 13:24:15 -04:00
|
|
|
exec "$SPARK_HOME"/bin/spark-class org.apache.spark.deploy.SparkSubmit "${ORIG_ARGS[@]}"
|
2014-03-29 17:41:36 -04:00
|
|
|
|