1. 程式人生 > >Spark高可用叢集安裝

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