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老大Master的IP #指定spark老大Master的埠 export SPARK_MASTER_PORT=7077 |
4.2 vi slaves 修改檔案(先把slaves.template重新命名為slaves)
#刪除localhost,新增下面兩行 hdp-node-02 hdp-node-03 |
通過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,檢視spark的web介面,檢視相關資訊。
以上就是最簡單的叢集搭建。但是沒有做高可用部分。下面就要介紹高可用的配置,安裝是一樣的,只不過配置略有不同。
二、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. 基於zookeeper的Spark 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。