spark+zookeeper高可用集群搭建


Spark的高可用部署

1.高可用部署說明

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

(1)基於文件系統的單點恢復(Single-Node Rcovery with Local File System)。主要用於開發或者測試環境。當Spark提供目錄保存Spark Application和worker的注冊信息。並將它們恢復狀態在寫在該目錄中,這時,一旦Master發生故障,就可以通過重新啟動Master進程(start-master.sh),恢復已運行的spark Application和Worker的注冊信息。

(2)基於zookeeper的Standby Master。用於生產模式,其基本原理就是通過zookeeper來選舉一個Master,其他的Master處於Standby狀態,將spark集群連接到同一個Zookeeper實例,並啟動一個Master,利用zookeeper提供的選舉和狀態保存的功能,可以使一個Master被選舉成活着的master,其他Master處於Standby狀態。如果現任的Master掛掉了,另外一個就可通過選舉產生,並恢復到舊的Master狀態,然后恢復調度,整個恢復過程可能需要1~2分鍾。

 

2.修改配置文件

vim spark-env.sh

# 1.安裝Zookeeper

# 2.修改spark-env.sh文件添加如下配置

注釋掉如下內容:

# SPARK_MASTER_HOST=hadoop102  /注釋掉master節點的ip,因為高可用部署的master是變化的

# SPARK_MASTER_PORT=7077

添加上如下內容:

  export SPARK_DAEMON_JAVA_OPTS="

  -Dspark.deploy.recoveryMode=ZOOKEEPER

  -Dspark.deploy.zookeeper.url=hdp01,hdp02,hdp03  //這里填寫zookeeper集群的ip zookeeper單機式只需要填一個即可

  -Dspark.deploy.zookeeper.dir=/spark"

  參數說明;

    (1)recoveryMode,恢復模式(Master重新啟動的模式)

      有三種:Zookeeper、FileSystem、None

    (2)deploy.zookeeper.url,Zookeeper的服務器地址

    (3)deploy.zookeeper.dir,保存集群元數據信息的文件、目錄。

    包括worker,Driver,Application.

    注意:

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

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

驗證spark集群:出現worker,hdp02啟動成功

再單獨啟動hdp02的master

master啟動成功,在web UI驗證,哪個master是alive

高可用驗證,關閉hdp01節點的master,是否能夠自動啟動hdp02的master節點

spark+zookeeper高可用集群搭建成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM