1. 程式人生 > >Spark環境搭建(多種模式)

Spark環境搭建(多種模式)

個人部落格原文連結

Spark環境的搭建相比於Hadoop叢集的搭建還是比較簡單的,而且跟Hadoop叢集的搭建流程也很相似,只是沒有Hadoop叢集那麼多的配置檔案要修改。本文中,我將詳細介紹Spark的本地模式、Standalone模式(偽分佈)、Standalone模式(全分佈)、Yarn叢集模式的搭建。

搭建環境:CentOS7+jdk8+spark2.3.2+hadoop2.7

Local本地模式

  1. 上傳並解壓spark2.3.2到指定目錄
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 新增軟連結
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改環境變數
    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模式(偽分佈)

  1. 上傳並解壓spark2.3.2到指定目錄
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 新增軟連結
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改環境變數
    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
  1. 啟動叢集
    進入sbin目錄
    cd /home/hadoop/apps/spark/sbin
    啟動master
    ./start-master.sh
    啟動slave
    ./start-slave.sh spark://hadoop1:7077
  2. 檢視是否啟動成功
    jps
  3. 檢視叢集資源頁面
    開啟網頁hadoop1:8080
  4. 進入叢集的shell
    spark-shell --master spark://hadoop1:7077

Standalone模式(全分佈)

  1. 上傳並解壓spark2.3.2到指定目錄
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 新增軟連結
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改環境變數
    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
  1. 修改配置檔案slaves
    cd /home/hadoop/apps/spark/conf
    cp slaves.template slaves
    vi slaves
    刪除原有節點,新增從節點主機名
hadoop2
hadoop3
hadoop4
  1. 將整個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. 在各個從節點重複2、3步操作
  3. 啟動叢集
    進入sbin目錄
    cd /home/hadoop/apps/spark/sbin
    啟動master
    ./start-master.sh
    啟動slave
    ./start-slaves.sh spark://hadoop1:7077
  4. 檢視是否啟動成功
    jps
  5. 檢視叢集資源頁面
    開啟網頁hadoop1:8080
  6. 進入叢集的shell
    spark-shell --master spark://hadoop1:7077

Yarn叢集模式

  1. 上傳並解壓spark2.3.2到指定目錄
    tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C apps/
  2. 新增軟連結
    ln -s spark-2.3.2-bin-hadoop2.7 spark
  3. 修改環境變數
    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
  1. 優化配置-修改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/*
  1. 修改配置檔案slaves
    cd /home/hadoop/apps/spark/conf
    cp slaves.template slaves
    vi slaves
    刪除原有節點,新增從節點主機名
hadoop2
hadoop3
hadoop4
  1. 將整個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. 在各個從節點重複2.3步操作
  3. 啟動hadoop的yarn叢集
    start-yarn.sh
  4. 啟動spark叢集
    進入sbin目錄
    cd /home/hadoop/apps/spark/sbin
    啟動master
    ./start-master.sh
    啟動slave
    ./start-slaves.sh spark://hadoop1:7077
  5. 檢視是否啟動成功
    jps
  6. 檢視叢集資源頁面
    開啟網頁hadoop1:8080
  7. 進入叢集的shell
    spark-shell --master yarn