Spark HA高可用部署


1.說明:

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

方案一:基於文件系統的單點恢復

      主要用於開發或測試環境,spark提供目錄保存spark Application 和worker的注冊信息,並將他們的恢復狀態寫入該目錄中,這時,一旦Master發生故障,就可以通過重新啟動Master進程(sbin/strart--master.sh),恢復已運行的spark Application 和 worker 的注冊信息。(簡單說就是需要自己親自再去啟動master)

方案二:基於zookeeper的 Standby Masters

    主要用於生產模式。其基本原理是通過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=hdp--node--01

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

           export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER  - Dspark.deploy.zookeeper.url=hdp-node-01:2181,hdp-node-02:2181,hdp-node-03:2181  -Dspark.deploy.zookeeper.dir=/spark"

             參數說明:

                1.spark.deploy.recoveryMode:恢復模式(Master 重新啟動的模式):有三種:(1):zookeeper(2):FileSystem(3):none

                2.spark.deploy.zookeeper.url:zookeeper的server地址

                3.spark.deploy.zookeeper.dir:保存集群元數據信息的文件,目錄。包括Worker,Driver和Application。

             注意:

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

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


免責聲明!

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



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