Spark高可用叢集安裝
在之前的文章Spark叢集安裝中,已經詳細的介紹了Spark分散式叢集的安裝方法
Spark叢集啟動後執行jps命令,主節點上有Master程序,其他子節點上有Work進行,但是有一個很大的問題,那就是Master節點存在單點故障,要解決此問題,就要藉助zookeeper,並且啟動至少兩個Master節點來實現高可靠
具體實現步驟如下:
1.Spark叢集規劃
這裡有三臺主機: cdh0 cdh1 cdh2
cdh0和cdh1是Master,cdh0 cdh1 cdh2是Worker
2.停止Spark叢集,修改配置檔案
1)修改spark-env.sh
在其中新增:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=cdh0,cdh1cdh2 -Dspark.deploy.zookeeper.dir=/spark"
-Dspark.deploy.zookeeper.url=zk1,zk2,zk3是zookeeper所在機器地址,預設埠號是2181可以不用寫,如果埠號修改過就需要加上埠號,-Dspark.deploy.zookeeper.dir=/spark是在zookeeper中建立spark目錄用來儲存資訊,儲存活躍Master的資訊,所有Worker的資源資訊和資源使用情況,為了能夠進行故障切換
2)修改slaves
在其中加上你自己的Worker節點機器主機名或者ip地址
3.啟動Zookeeper叢集
4.在一臺機器上使用
sbin/start-all.sh
來啟動Spark叢集,這時候只有一個Master,然後在另外任意一臺Worker節點機器上使用
sbin/start-master.sh
再啟動一個Master
最後你可以通過WEBUI進行觀察,之前有一個Master的時候,WEBUI上的status是ALIVE(活躍)狀態,現在有兩個Master,你切換到上邊單獨啟動的那個Master的WEBUI上,可以看到是 STANDBY(備用)狀態,只有當活躍狀態的Master掛掉了才能使用備用狀態的Master