53cd50c069
This commit makes Spark invocation saner by using an assembly JAR to find all of Spark's dependencies instead of adding all the JARs in lib_managed. It also packages the examples into an assembly and uses that as SPARK_EXAMPLES_JAR. Finally, it replaces the old "run" script with two better-named scripts: "run-examples" for examples, and "spark-class" for Spark internal classes (e.g. REPL, master, etc). This is also designed to minimize the confusion people have in trying to use "run" to run their own classes; it's not meant to do that, but now at least if they look at it, they can modify run-examples to do a decent job for them. As part of this, Bagel's examples are also now properly moved to the examples package instead of bagel.
88 lines
2.4 KiB
Bash
Executable file
88 lines
2.4 KiB
Bash
Executable file
#!/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.
|
|
#
|
|
|
|
#
|
|
# Shell script for starting the Spark Shell REPL
|
|
# Note that it will set MASTER to spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
|
|
# if those two env vars are set in spark-env.sh but MASTER is not.
|
|
# Options:
|
|
# -c <cores> Set the number of cores for REPL to use
|
|
#
|
|
|
|
# Enter posix mode for bash
|
|
set -o posix
|
|
|
|
FWDIR="`dirname $0`"
|
|
|
|
for o in "$@"; do
|
|
if [ "$1" = "-c" -o "$1" = "--cores" ]; then
|
|
shift
|
|
if [ -n "$1" ]; then
|
|
OPTIONS="-Dspark.cores.max=$1"
|
|
shift
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Set MASTER from spark-env if possible
|
|
if [ -z "$MASTER" ]; then
|
|
if [ -e "$FWDIR/conf/spark-env.sh" ]; then
|
|
. "$FWDIR/conf/spark-env.sh"
|
|
fi
|
|
if [[ "x" != "x$SPARK_MASTER_IP" && "y" != "y$SPARK_MASTER_PORT" ]]; then
|
|
MASTER="spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}"
|
|
export MASTER
|
|
fi
|
|
fi
|
|
|
|
# Copy restore-TTY-on-exit functions from Scala script so spark-shell exits properly even in
|
|
# binary distribution of Spark where Scala is not installed
|
|
exit_status=127
|
|
saved_stty=""
|
|
|
|
# restore stty settings (echo in particular)
|
|
function restoreSttySettings() {
|
|
stty $saved_stty
|
|
saved_stty=""
|
|
}
|
|
|
|
function onExit() {
|
|
if [[ "$saved_stty" != "" ]]; then
|
|
restoreSttySettings
|
|
fi
|
|
exit $exit_status
|
|
}
|
|
|
|
# to reenable echo if we are interrupted before completing.
|
|
trap onExit INT
|
|
|
|
# save terminal settings
|
|
saved_stty=$(stty -g 2>/dev/null)
|
|
# clear on error so we don't later try to restore them
|
|
if [[ ! $? ]]; then
|
|
saved_stty=""
|
|
fi
|
|
|
|
$FWDIR/spark-class $OPTIONS spark.repl.Main "$@"
|
|
|
|
# record the exit status lest it be overwritten:
|
|
# then reenable echo and propagate the code.
|
|
exit_status=$?
|
|
onExit
|