Spark環境搭建(多種模式)
Spark環境的搭建相比於Hadoop叢集的搭建還是比較簡單的,而且跟Hadoop叢集的搭建流程也很相似,只是沒有Hadoop叢集那麼多的配置檔案要修改。本文中,我將詳細介紹Spark的本地模式、Standalone模式(偽分佈)、Standalone模式(全分佈)、Yarn叢集模式的搭建。
搭建環境:CentOS7+jdk8+spark2.3.2+hadoop2.7
Local本地模式
- 上傳並解壓spark2.3.2到指定目錄
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 新增軟連結
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改環境變數
vi ~/.bashrc
新增
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此處必須要新增JAVA_HOME的路徑,雖然你可能已經在/etc/profile例配置了JAVA_HOME,但是Spark識別不到,後面啟動會報找不到JAVA_HOME的錯誤,所以這裡必須再次新增一下JAVA_HOME的路徑。
4. 測試是否安裝成功
測試執行樣例
run-example SparkPi 10
測試shell
spark-shell
測試spark-submit命令
spark-submit --class org.apache.spark.examples.SparkPi /home/hadoop/apps/spark/examples/jars/spark-examples_2.11-2.3.2.jar 100
Standalone模式(偽分佈)
- 上傳並解壓spark2.3.2到指定目錄
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 新增軟連結
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改環境變數
vi ~/.bashrc
新增
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此處必須要新增JAVA_HOME的路徑,雖然你可能已經在/etc/profile例配置了JAVA_HOME,但是Spark識別不到,後面啟動會報找不到JAVA_HOME的錯誤,所以這裡必須再次新增一下JAVA_HOME的路徑。
4.
cd /home/hadoop/apps/spark/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在最下面新增
# hadoop1是主節點,即本機的主機名
export SPARK_MASTER_HOST=hadoop1
# 預設埠號為7077
export SPARK_MASTER_PORT=7077
- 啟動叢集
進入sbin目錄
cd /home/hadoop/apps/spark/sbin
啟動master
./start-master.sh
啟動slave
./start-slave.sh spark://hadoop1:7077 - 檢視是否啟動成功
jps - 檢視叢集資源頁面
開啟網頁hadoop1:8080 - 進入叢集的shell
spark-shell --master spark://hadoop1:7077
Standalone模式(全分佈)
- 上傳並解壓spark2.3.2到指定目錄
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 新增軟連結
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改環境變數
vi ~/.bashrc
新增
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此處必須要新增JAVA_HOME的路徑,雖然你可能已經在/etc/profile例配置了JAVA_HOME,但是Spark識別不到,後面啟動會報找不到JAVA_HOME的錯誤,所以這裡必須再次新增一下JAVA_HOME的路徑。
4. 修改配置檔案spark-env.sh
cd /home/hadoop/apps/spark/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在最下面新增
# hadoop1是主節點,即本機的主機名
export SPARK_MASTER_HOST=hadoop1
# 預設埠號為7077
export SPARK_MASTER_PORT=7077
- 修改配置檔案slaves
cd /home/hadoop/apps/spark/conf
cp slaves.template slaves
vi slaves
刪除原有節點,新增從節點主機名
hadoop2
hadoop3
hadoop4
- 將整個spark檔案傳送到各個從節點
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop2:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop3:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop4:/home/hadoop/apps/ - 在各個從節點重複2、3步操作
- 啟動叢集
進入sbin目錄
cd /home/hadoop/apps/spark/sbin
啟動master
./start-master.sh
啟動slave
./start-slaves.sh spark://hadoop1:7077 - 檢視是否啟動成功
jps - 檢視叢集資源頁面
開啟網頁hadoop1:8080 - 進入叢集的shell
spark-shell --master spark://hadoop1:7077
Yarn叢集模式
- 上傳並解壓spark2.3.2到指定目錄
tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/ - 新增軟連結
ln -s spark-2.3.2-bin-hadoop2.7 spark - 修改環境變數
vi ~/.bashrc
新增
export SPARK_HOME=/home/hadoop/apps/spark
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$SPARK_HOME/bin:$JAVA_HOME/bin
source ~/.bashrc
注:此處必須要新增JAVA_HOME的路徑,雖然你可能已經在/etc/profile例配置了JAVA_HOME,但是Spark識別不到,後面啟動會報找不到JAVA_HOME的錯誤,所以這裡必須再次新增一下JAVA_HOME的路徑。
4. 修改配置檔案spark-env.sh
cd /home/hadoop/apps/spark/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
在最下面新增
# hadoop1是主節點,即本機的主機名
export SPARK_MASTER_HOST=hadoop1
# 預設埠號為7077
export SPARK_MASTER_PORT=7077
# 新增hadoop的配置目錄
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.1/etc/hadoop
- 優化配置-修改spark-defaults.conf
cd /home/hadoop/apps/spark/conf
cp spark-defaults.conf.template spark-defaults.conf
vi spark-defaults.conf
新增
# 將spark的類庫 jar包上傳到hdfs上,省的每次都上傳
spark.yarn.jars hdfs://hadoop1:9000/sparklib/jars/*
- 修改配置檔案slaves
cd /home/hadoop/apps/spark/conf
cp slaves.template slaves
vi slaves
刪除原有節點,新增從節點主機名
hadoop2
hadoop3
hadoop4
- 將整個spark檔案傳送到各個從節點
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop2:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop3:/home/hadoop/apps/
scp -r /home/hadoop/apps/spark-2.3.2-bin-hadoop2.7 hadoop4:/home/hadoop/apps/ - 在各個從節點重複2.3步操作
- 啟動hadoop的yarn叢集
start-yarn.sh - 啟動spark叢集
進入sbin目錄
cd /home/hadoop/apps/spark/sbin
啟動master
./start-master.sh
啟動slave
./start-slaves.sh spark://hadoop1:7077 - 檢視是否啟動成功
jps - 檢視叢集資源頁面
開啟網頁hadoop1:8080 - 進入叢集的shell
spark-shell --master yarn