本文使用Spark的版本爲:spark-2.4.0-bin-hadoop2.7.tgz。html
spark的集羣採用3臺機器進行搭建,機器分別是server01,server02,server03。java
其中:server01,server02設置爲Master,server01,server02,server03爲Worker。web
1.Sparkapache
下載地址:瀏覽器
http://spark.apache.org/downloads.htmlapp
選擇對應的版本進行下載就好,我這裏下載的版本是:spark-2.4.0-bin-hadoop2.7.tgz。jvm
2.上傳及解壓oop
2.1 下載到本地後,上傳到Linux的虛擬機上url
scp spark-2.4.0-bin-hadoop2.7.tgz hadoop@server01:/hadoop
2.2 解壓spa
tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz
2.3 重命名
mv spark-2.4.0-bin-hadoop2.7 spark
3.配置環境
進入spark/conf目錄
3.1 複製配置文件
cp slaves.template slaves cp spark-env.sh.template spark-env.sh
3.2 修改slaves配置文件
spark集羣的worker conf配置 slaves
server01
server02
server03
3.3 修改spark-env.sh配置文件
# java環境變量 export JAVA_HOME=/usr/local/java #spark home export SPARK_HOME=/export/opt/spark/spark2.4.0 # spark集羣master進程主機host export SPARK_MASTER_HOST=server01 # 配置zk 此處能夠獨立配置zk list,逗號分隔 export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=xxx.xxx.xxx.xxx:2181, xxx.xxx.xxx.xxx:2181……"
以下圖
3.4 下發到server02和server03機器上
scp -r /hadoop/spark hadoop@server02:/hadoop scp -r /hadoop/spark hadoop@server03:/hadoop
3.5 修改server02機器上的spark-env.sh的SPARK_MASTER_HOST參數信息
# 增長備用master主機,改成server02,將本身設置爲master(備用)
export SPARK_MASTER_HOST=server02
3.6 配置環境變量
給server01,server02,server03機器上配置spark的環境變量
export SPARK_HOME=/export/opt/spark/spark2.4.0 export PATH=$PATH:${SPARK_HOME}/bin:${SPARK_HOME}/sbin #使配置環境生效 source /etc/profile
4. 啓動Spark集羣
在server01機器上,進入spark目錄
4.1 分別啓動master和slaves進程
# 啓動master進程 sbin/start-master.sh # 啓動3個worker進程,也能夠每一個機器獨立啓動須要輸入兩個master地址 sbin/start-slaves.sh
jps查看進程1有既有master又有Worker,2,3只有Worker
4.2 直接使用start-all.sh啓動
sbin/start-all.sh
4.3 手動啓動server02機器上的master進程
進入spark目錄
sbin/start-master.sh
咱們能夠使用stop-all.sh殺死spark的進程
sbin/stop-all.sh
web頁面展現
在瀏覽器中輸入
server01:8080
Status:ALIVE 說明master爲主Master
server02:8080
總結
部署完成後能夠嘗試kill掉1的master,而後須要等幾分鐘後會重啓備用master,此時備用切換爲主。
另外若是application被殺掉或者jvm出現問題,還能夠經過增長參數 --supervise(須要安裝,pip install supervise)能夠從新啓動application。