$ wget https://downloads.lightbend.com/scala/2.12.6/scala-2.12.6.tgz
$ tar -zxvf scala-2.12.6.tgz
$ mv scala-2.12.6 scala
export SCALA_HOME=/home/hadoop/scala
export PATH=$SCALA_HOME/bin:$PATH
export SPARK_HOME=/home/hadoop/spark
export PATH=$SPARK_HOME/bin:$PATH
$ scala -version
Scala code runner version 2.12.6 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.
$ cd ~
$ wget http://apache.stu.edu.tw/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
$ tar -zxvf spark-2.3.1.tgz
$ ~/spark/dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided,orc-provided"
$ cp ~/spark/spark-2.3.1-bin-hadoop2-without-hive.tgz ~/
$ tar -zxvf spark-2.3.1-bin-hadoop2-without-hive.tgz
$ mv spark-2.3.1-bin-hadoop2-without-hive spark
$ cp ~/spark/conf/spark-env.sh.template ~/spark/conf/spark-env.sh
$ vi ~/spark/conf/spark-env.sh
export SCALA_HOME=/home/hadoop/scala
export JAVA_HOME=/usr
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_HOME=/home/hadoop/spark
export SPARK_MASTER_IP=hadoop1
export SPARK_EXECUTOR_MEMORY=1G
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
$ scp -r ~/spark hadoop3:/home/hadoop/
$ scp -r ~/spark hadoop4:/home/hadoop/
$ ~/spark/sbin/start-all.sh
$ ~/spark/bin/spark-submit --class org.apache.spark.examples.SparkPi --master local ~/spark/examples/jars/spark-examples_2.11-2.3.1.jar
$ ~/spark/bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop1:7077 ~/spark/examples/jars/spark-examples_2.11-2.3.1.jar
$ ~/spark/bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client ~/spark/examples/jars/spark-examples_2.11-2.3.1.jar