1. 程式人生 > >Spark2.X 叢集安裝(原生版詳細)

Spark2.X 叢集安裝(原生版詳細)

Spark叢集安裝

搭建最簡單的三臺主機的叢集。

hadoop001    Master 

hadoop002    Worker

hadoop003    Worker

詳細步驟如下。

1.下載spark安裝包

  下載地址spark官網:http://spark.apache.org/downloads.html

 

2.規劃安裝目錄

/opt/soft

3.解壓安裝包

4.修改配置檔案

配置檔案目錄在/opt/soft/spark-2.0.2-bin-hadoop2.7/conf

4.1 vi spark-env.sh 修改檔案(先把spark-env.sh.template重新命名為spark-env.sh)

#配置java環境變數

export JAVA_HOME=/opt/soft/jdk1.8.0_171

#指定spark老大MasterIP
export SPARK_MASTER_HOST=hadoop001

#指定spark老大Master的埠

export SPARK_MASTER_PORT=7077

4.2 vi  slaves 修改檔案(先把slaves.template重新命名為slaves)

#刪除localhost,新增下面兩行

hdp-node-02

hdp-node-03

5.拷貝到其他兩臺主機

通過scp 命令spark的安裝目錄拷貝到其他機器上

scp -r spark-2.0.2-bin-hadoop2.7 hadoop002:/opt/soft/

scp -r spark-2.0.2-bin-hadoop2.7 hadoop003:/opt/soft/

6.配置spark環境變數

spark新增到環境變數,新增以下內容到 /etc/profile

export SPARK_HOME=/opt/soft/spark-2.0.2-bin-hadoop2.7

export PATH=$PATH:$SPARK_HOME/bin

注意最後 source /etc/profile  重新整理配置

7.啟動spark叢集

#在主節點上啟動spark

/opt/soft/spark-2.0.2-bin-hadoop2.7/sbin/start-all.sh

啟動成功顯示結果如下:
[[email protected] spark-2.0.2-bin-hadoop2.7]$ sbin/start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /opt/soft/spark-2.0.2-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-hadoop001.out
hadoop002: starting org.apache.spark.deploy.worker.Worker, logging to /opt/soft/spark-2.0.2-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-hadoop002.out
hadoop002: failed to launch org.apache.spark.deploy.worker.Worker:
hadoop002: full log in /opt/soft/spark-2.0.2-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-hadoop002.out
hadoop003: starting org.apache.spark.deploy.worker.Worker, logging to /opt/soft/spark-2.0.2-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-hadoop003.out
hadoop003: failed to launch org.apache.spark.deploy.worker.Worker:
hadoop003: full log in /opt/soft/spark-2.0.2-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-hadoop003.out

8.停止spark叢集

#在主節點上停止spark叢集

/opt/soft/spark-2.0.2-bin-hadoop2.7/sbin/stop-all.sh

9.Spark視覺化介面

正常啟動spark集群后,可以通過訪問 http://hadoop001:8080,檢視sparkweb介面,檢視相關資訊。


以上就是最簡單的叢集搭建。但是沒有做高可用部分。下面就要介紹高可用的配置,安裝是一樣的,只不過配置略有不同。

二、Spark高可用部署

1. 高可用部署說明

Spark Standalone叢集是Master-Slaves架構的叢集模式,和大部分的Master-Slaves結構叢集一樣,存在著Master單點故障的問題。如何解決這個單點故障的問題,Spark提供了兩種方案:

(1)基於檔案系統的單點恢復(Single-Node Recovery with Local File System)

主要用於開發或測試環境。當spark提供目錄儲存spark Application和worker的註冊資訊,並將他們的恢復狀態寫入該目錄中,這時,一旦Master發生故障,就可以通過重新啟動Master程序(sbin/start-master.sh),恢復已執行的spark Application和worker的註冊資訊。

(2)基於zookeeper的Standby Masters(Standby Masters with ZooKeeper)

用於生產模式。其基本原理是通過zookeeper來選舉一個Master,其他的Master處於Standby狀態。將spark叢集連線到同一個ZooKeeper例項並啟動多個Master,利用zookeeper提供的選舉和狀態儲存功能,可以使一個Master被選舉成活著的master,而其他Master處於Standby狀態。如果現任Master死去,另一個Master會通過選舉產生,並恢復到舊的Master狀態,然後恢復排程。整個恢復過程可能要1-2分鐘。

2. 基於zookeeperSpark HA高可用叢集部署

HA方案使用起來很簡單,首先需要搭建一個zookeeper叢集,然後啟動zooKeeper叢集,最後在不同節點上啟動Master

具體配置如下:

(1)vim spark-env.sh

註釋掉 export SPARK_MASTER_HOST=hadoop001 (這裡是在完成前面基礎上進行這一步,如果 直接搭建高可用,自步驟忽略)

(2)在spark-env.sh新增SPARK_DAEMON_JAVA_OPTS,內容如下:

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER  -Dspark.deploy.zookeeper.url=

hadoop001:2181,hadoop002:2181,hadoop003:2181  -Dspark.deploy.zookeeper.dir=/spark"

引數說明

spark.deploy.recoveryMode:恢復模式(Master重新啟動的模式)

有三種:(1)ZooKeeper (2) FileSystem (3)NONE

spark.deploy.zookeeper.url:ZooKeeper的Server地址

spark.deploy.zookeeper.dir:儲存叢集元資料資訊的檔案、目錄。

包括Worker,Driver和Application。

注意:

在普通模式下啟動spark叢集,只需要在主機上面執行start-all.sh 就可以了。

在高可用模式下啟動spark叢集,先需要在任意一臺節點上啟動start-all.sh命令。然後在另外一臺節點上單獨啟動master。命令start-master.sh。