|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# This script computes Spark's classpath and prints it to stdout; it's used by both the "run" |
| 4 | +# script and the ExecutorRunner in standalone cluster mode. |
| 5 | + |
| 6 | +SCALA_VERSION=2.9.3 |
| 7 | + |
| 8 | +# Figure out where Spark is installed |
| 9 | +FWDIR="$(cd `dirname $0`/..; pwd)" |
| 10 | + |
| 11 | +# Load environment variables from conf/spark-env.sh, if it exists |
| 12 | +if [ -e $FWDIR/conf/spark-env.sh ] ; then |
| 13 | + . $FWDIR/conf/spark-env.sh |
| 14 | +fi |
| 15 | + |
| 16 | +CORE_DIR="$FWDIR/core" |
| 17 | +REPL_DIR="$FWDIR/repl" |
| 18 | +REPL_BIN_DIR="$FWDIR/repl-bin" |
| 19 | +EXAMPLES_DIR="$FWDIR/examples" |
| 20 | +BAGEL_DIR="$FWDIR/bagel" |
| 21 | +STREAMING_DIR="$FWDIR/streaming" |
| 22 | +PYSPARK_DIR="$FWDIR/python" |
| 23 | + |
| 24 | +# Build up classpath |
| 25 | +CLASSPATH="$SPARK_CLASSPATH" |
| 26 | +CLASSPATH="$CLASSPATH:$FWDIR/conf" |
| 27 | +CLASSPATH="$CLASSPATH:$CORE_DIR/target/scala-$SCALA_VERSION/classes" |
| 28 | +if [ -n "$SPARK_TESTING" ] ; then |
| 29 | + CLASSPATH="$CLASSPATH:$CORE_DIR/target/scala-$SCALA_VERSION/test-classes" |
| 30 | + CLASSPATH="$CLASSPATH:$STREAMING_DIR/target/scala-$SCALA_VERSION/test-classes" |
| 31 | +fi |
| 32 | +CLASSPATH="$CLASSPATH:$CORE_DIR/src/main/resources" |
| 33 | +CLASSPATH="$CLASSPATH:$REPL_DIR/target/scala-$SCALA_VERSION/classes" |
| 34 | +CLASSPATH="$CLASSPATH:$EXAMPLES_DIR/target/scala-$SCALA_VERSION/classes" |
| 35 | +CLASSPATH="$CLASSPATH:$STREAMING_DIR/target/scala-$SCALA_VERSION/classes" |
| 36 | +CLASSPATH="$CLASSPATH:$STREAMING_DIR/lib/org/apache/kafka/kafka/0.7.2-spark/*" # <-- our in-project Kafka Jar |
| 37 | +if [ -e "$FWDIR/lib_managed" ]; then |
| 38 | + CLASSPATH="$CLASSPATH:$FWDIR/lib_managed/jars/*" |
| 39 | + CLASSPATH="$CLASSPATH:$FWDIR/lib_managed/bundles/*" |
| 40 | +fi |
| 41 | +CLASSPATH="$CLASSPATH:$REPL_DIR/lib/*" |
| 42 | +# Add the shaded JAR for Maven builds |
| 43 | +if [ -e $REPL_BIN_DIR/target ]; then |
| 44 | + for jar in `find "$REPL_BIN_DIR/target" -name 'spark-repl-*-shaded-hadoop*.jar'`; do |
| 45 | + CLASSPATH="$CLASSPATH:$jar" |
| 46 | + done |
| 47 | + # The shaded JAR doesn't contain examples, so include those separately |
| 48 | + EXAMPLES_JAR=`ls "$EXAMPLES_DIR/target/spark-examples"*[0-9T].jar` |
| 49 | + CLASSPATH+=":$EXAMPLES_JAR" |
| 50 | +fi |
| 51 | +CLASSPATH="$CLASSPATH:$BAGEL_DIR/target/scala-$SCALA_VERSION/classes" |
| 52 | +for jar in `find $PYSPARK_DIR/lib -name '*jar'`; do |
| 53 | + CLASSPATH="$CLASSPATH:$jar" |
| 54 | +done |
| 55 | + |
| 56 | +# Figure out the JAR file that our examples were packaged into. This includes a bit of a hack |
| 57 | +# to avoid the -sources and -doc packages that are built by publish-local. |
| 58 | +if [ -e "$EXAMPLES_DIR/target/scala-$SCALA_VERSION/spark-examples"*[0-9T].jar ]; then |
| 59 | + # Use the JAR from the SBT build |
| 60 | + export SPARK_EXAMPLES_JAR=`ls "$EXAMPLES_DIR/target/scala-$SCALA_VERSION/spark-examples"*[0-9T].jar` |
| 61 | +fi |
| 62 | +if [ -e "$EXAMPLES_DIR/target/spark-examples"*[0-9T].jar ]; then |
| 63 | + # Use the JAR from the Maven build |
| 64 | + export SPARK_EXAMPLES_JAR=`ls "$EXAMPLES_DIR/target/spark-examples"*[0-9T].jar` |
| 65 | +fi |
| 66 | + |
| 67 | +# Add hadoop conf dir - else FileSystem.*, etc fail ! |
| 68 | +# Note, this assumes that there is either a HADOOP_CONF_DIR or YARN_CONF_DIR which hosts |
| 69 | +# the configurtion files. |
| 70 | +if [ "x" != "x$HADOOP_CONF_DIR" ]; then |
| 71 | + CLASSPATH="$CLASSPATH:$HADOOP_CONF_DIR" |
| 72 | +fi |
| 73 | +if [ "x" != "x$YARN_CONF_DIR" ]; then |
| 74 | + CLASSPATH="$CLASSPATH:$YARN_CONF_DIR" |
| 75 | +fi |
| 76 | + |
| 77 | +# Add Scala standard library |
| 78 | +if [ -z "$SCALA_LIBRARY_PATH" ]; then |
| 79 | + if [ -z "$SCALA_HOME" ]; then |
| 80 | + echo "SCALA_HOME is not set" >&2 |
| 81 | + exit 1 |
| 82 | + fi |
| 83 | + SCALA_LIBRARY_PATH="$SCALA_HOME/lib" |
| 84 | +fi |
| 85 | +CLASSPATH="$CLASSPATH:$SCALA_LIBRARY_PATH/scala-library.jar" |
| 86 | +CLASSPATH="$CLASSPATH:$SCALA_LIBRARY_PATH/scala-compiler.jar" |
| 87 | +CLASSPATH="$CLASSPATH:$SCALA_LIBRARY_PATH/jline.jar" |
| 88 | + |
| 89 | +echo "$CLASSPATH" |
0 commit comments