#!/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 Set the number of cores for REPL to use # # Enter posix mode for bash set -o posix # Update the the banner logo export SPARK_BANNER_TEXT="Welcome to ______ __ _ __ / ____/________ _____ / /_ | |/ / / / __/ ___/ __ \`/ __ \/ __ \| / / /_/ / / / /_/ / /_/ / / / / | \____/_/ \__,_/ .___/_/ /_/_/|_| /_/ Alpha Release Powered by: ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ \`/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ /_/ version 0.9.0 Example: scala> val graph = GraphLoader.textFile(sc, \"hdfs://links\") scala> graph.numVertices scala> graph.numEdges scala> val pageRankGraph = Analytics.pagerank(graph, 10) // 10 iterations scala> val maxPr = pageRankGraph.vertices.map{ case (vid, pr) => pr }.max scala> println(maxPr) " export SPARK_SHELL_INIT_BLOCK="import org.apache.spark.graph._;" # Set the serializer to use Kryo for graphx objects SPARK_JAVA_OPTS+=" -Dspark.serializer=org.apache.spark.serializer.KryoSerializer " SPARK_JAVA_OPTS+="-Dspark.kryo.registrator=org.apache.spark.graph.GraphKryoRegistrator " SPARK_JAVA_OPTS+="-Dspark.kryoserializer.buffer.mb=10 " 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 org.apache.spark.repl.Main "$@" # record the exit status lest it be overwritten: # then reenable echo and propagate the code. exit_status=$? onExit