Spark的StandAlone - HA高可用模式部署

StandAlone - HA高可用模式

爲什麼要使用HA高可用模式

Spark StandAlone集羣是Master - Slaves架構的集羣模式,和大部分的Master - Slaves結構集羣一樣,存在着Master單點故障問題。

提問:如何解決這個單點故障的問題?
Spark提供了兩種解決方案

  1. 基於文件系統的單點恢復(Single-Node Recovery with Local File System)
  2. 基於Zookeeper的Standby Masters(Standby Masters with Zookeeper)
    在這裏插入圖片描述
    注意:
    基於文件系統的方案只能用於開發或測試環境,而基於Zookeeper的方案,可以用於生產環境

HA方案在使用上也很簡單,只需要先啓動zookeeper集羣,然後在不同節點上啓動Master即可。

配置HA

  • 先停止Spark集羣
    /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/sbin/stop-all.sh
  • 在node01上配置
    vim /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf/spark-env,sh
  • 註釋掉Master配置
    #export SPARK_MASTER_HOST=node01
  • 在spark-env.sh添加 SPARK_DAEMON_JAVA_OPTSPARK_DAEMON_JAVA_OPTSS
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER  -Dspark.deploy.zookeeper.url=node01:2181,node02:2181,node03:2181  -Dspark.deploy.zookeeper.dir=/spark"

參數說明
spark.deploy.recoveryMode:恢復模式
spark.deploy.zookeeper.url:ZooKeeper的Server地址
spark.deploy.zookeeper.dir:保存集羣元數據信息的文件、目錄。包括Worker、Driver、Application信息。

  • scp到其他節點
    scp /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf/spark-env.sh node02:$PWD
    scp /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf/spark-env.sh node03:$PWD

啓動zookeeper集羣

啓動Spark集羣

  • node01上啓動Spark集羣執行:
    /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/sbin/start-all.sh

  • node02上再單獨只啓動一個Master
    /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/sbin/start-master.sh

注意:
在普通模式下啓動spark集羣
只需要在主節點上執行start-all.sh 就可以了
在高可用模式下啓動spark集羣
先需要在任意一臺主節點上執行start-all.sh
然後在另外一臺主節點上單獨執行start-master.sh

測試HA

  • 測試主備切換
    1.在node01上使用jps查看master進程id
    2.使用kill -9 id號強制結束該進程
    3.稍等片刻後刷新node02的web界面發現node02爲Alive
    在這裏插入圖片描述
  • 測試集羣模式提交任務
  1. 集羣模式啓動spark-shell
    /export/servers/spark/bin/spark-shell --master spark://node01:7077,node02:7077
  2. 運行程序
sc.textFile("hdfs://node01:8020/wordcount/input/words.txt")
.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
.saveAsTextFile("hdfs://node01:8020/wordcount/output3")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章