Spark Standalone集群是Master-Slaves架構的集群模式,和大部分的Master-Slaves結構集群一樣,存着Master單點故障的問題。如何解決這個問題,Spark提供了兩種方案:
(1)基於文件系統的單點恢復
# 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高可用集群搭建成功!