Spark部署模式主要有四種:Local模式(單機模式)、Standalone模式(使用Spark自帶的簡單集羣管理器)、YARN模式(使用YARN作爲集羣管理器)和Mesos模式(使用Mesos作爲集羣管理器)。
本文進行Local模式(單機模式)的 Spark2.1.0版本安裝。安裝spark前需保證:Hadoop2.7.1或以上與Java JDK1.8或以上均已正確安裝並配置
spark下載:http://spark.apache.org/downloads.html
sudo tar -zxf ~/Downloads/spark-2.1.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.1.0-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark # 此處的 hadoop 爲你的用戶名
安裝後,還需要修改Spark的配置文件spark-env.sh
cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
編輯spark-env.sh文件(vim ./conf/spark-env.sh),在第一行添加以下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
有了上面的配置信息以後,Spark就可以把數據存儲到Hadoop分佈式文件系統HDFS中,也可以從HDFS中讀取數據。如果沒有配置上面信息,Spark就只能讀寫本地數據,無法讀寫HDFS數據。
然後通過如下命令,修改環境變量
vim ~/.bashrc
在.bashrc文件中添加如下內容
export JAVA_HOME=/usr/lib/jvm/default-java
export HADOOP_HOME=/usr/local/hadoop
export SPARK_HOME=/usr/local/spark
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH
PYTHONPATH環境變量主要是爲了在Python3中引入pyspark庫,PYSPARK_PYTHON變量主要是設置pyspark運行的python版本。
.bashrc中必須包含JAVA_HOME,HADOOP_HOME,SPARK_HOME,PYTHONPATH,PYSPARK_PYTHON,PATH這些環境變量。如果已經設置了這些變量則不需要重新添加設置。
接着還需要讓該環境變量生效,執行如下代碼:
source ~/.bashrc
配置完成後就可以直接使用,不需要像Hadoop運行啓動命令。
通過運行Spark自帶的示例,驗證Spark是否安裝成功。
cd /usr/local/sparkbin/run-example SparkPi
找到pi的例子(2>&1 可以將所有的信息都輸出到 stdout 中):
bin/run-example SparkPi 2>&1 | grep "Pi is"
這裏涉及到Linux Shell中管道的知識,詳情可以參考Linux Shell中的管道命令
過濾後的運行結果如下圖示,可以得到π 的 5 位小數近似值: