Spark自带的集群模式(Standalone),Spark/Spark-ha集群搭建
1、Spark自帶的集群模式
對于Spark自帶的集群模式,Spark要先啟動一個老大(Master),然后老大Master和各個小弟(Worker)進行通信,其中真正干活的是Worker下的Executor。關于提交任務的,需要有一個客戶端,這個客戶端叫做Driver.這個Driver首先和Master建立通信,然后Master負責資源分配,然后讓Worker啟動Executor,然后Executor和Driver進行通信。效果圖如下:
2、Spark集群搭建(先非HA—>再HA)
2.1. 機器準備
A:準備5臺Linux服務器(hadoop1(Master),hadoop2(Master),hadoop3(worker),hadoop4(worker),hadoop5(worker))
B:安裝好/usr/local/jdk1.8.0_73
2.2. 下載Spark安裝包
下載地址:http://spark.apache.org/downloads.html
https://d3kbcqa49mib13.cloudfront.net/spark-2.1.1-bin-hadoop2.7.tgz
上傳解壓安裝包
上傳spark-2.1.1-bin-hadoop2.7.tgz安裝包到Linux上的/home/tuzq/software
解壓安裝包到指定位置
2.3. 配置Spark
進入到Spark安裝目錄
cd /home/tuzq/software/spark-2.1.1-bin-hadoop2.7進入conf目錄并重命名并修改spark-env.sh.template文件
[root@hadoop1 spark-2.1.1-bin-hadoop2.7]# cd conf/ [root@hadoop1 conf]# pwd /home/tuzq/software/spark-2.1.1-bin-hadoop2.7/conf [root@hadoop1 conf]# mv spark-env.sh.template spark-env.sh [root@hadoop1 conf]# vim spark-env.sh在該配置文件中添加如下配置
export JAVA_HOME=/usr/local/jdk1.8.0_73 export SPARK_MASTER_IP=hadoop1 export SPARK_MASTER_PORT=7077保存退出
重命名并修改slaves.template文件
在該文件中添加子節點所在的位置(Worker節點)
hadoop3
hadoop4
hadoop5
保存退出
配置環境變量:
vim /etc/profile#set spark env export SPARK_HOME=/home/tuzq/software/spark-2.1.1-bin-hadoop2.7 export PATH=$PATH:$SPARK_HOME/binsource /etc/profile將配置好的Spark拷貝到其他節點上
cd /home/tuzq/software scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop2:$PWD scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop3:$PWD scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop4:$PWD scp -r spark-2.1.1-bin-hadoop2.7 root@hadoop5:$PWDSpark集群配置完畢,目前是1個Master,3個Work,在hadoop1上啟動Spark集群
/home/tuzq/software/spark-2.1.1-bin-hadoop2.7/sbin/start-all.sh運行結果:
如果想停止,就用:
/home/tuzq/software/spark-2.1.1-bin-hadoop2.7/sbin/stop-all.sh啟動后執行jps命令,主節點上有Master進程,其他子節點上有Work進行,登錄Spark管理界面查看集群狀態(主節點):http://hadoop1:8080/
2.4.Spark-Ha集群配置
到此為止,Spark集群安裝完畢,但是有一個很大的問題,那就是Master節點存在單點故障,要解決此問題,就要借助zookeeper,并且啟動至少兩個Master節點來實現高可靠,配置方式比較簡單:
Spark集群規劃:hadoop1,hadoop2是Master;hadoop3,hadoop4,hadoop5是Worker
安裝配置zk集群,并啟動zk集群(hadoop11,hadoop12,hadoop13)
停止spark所有服務,修改配置文件spark-env.sh,在該配置文件中刪掉SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop11,hadoop12,hadoop13 -Dspark.deploy.zookeeper.dir=/spark"
效果如下:
將修改的配置同步到hadoop2,hadoop3,hadoop4,hadoop5這些機器上
[root@hadoop1 conf]# pwd /home/tuzq/software/spark-2.1.1-bin-hadoop2.7/conf [root@hadoop1 conf]# scp -r * root@hadoop2:$PWD [root@hadoop1 conf]# scp -r * root@hadoop3:$PWD [root@hadoop1 conf]# scp -r * root@hadoop4:$PWD [root@hadoop1 conf]# scp -r * root@hadoop5:$PWD1. 在hadoop1節點上修改slaves配置文件內容指定worker節點(本篇博客上hadoop3,hadoop4,hadoop5為worker,hadoop1和hadoop2 master)
2. 在hadoop1上執行sbin/start-all.sh腳本,然后在hadoop2上執行sbin/start-master.sh啟動第二個Master(注意在啟動之前先停止啟動了的單集群)
3、接著訪問http://hadoop1:8080/:
效果如下:
上面的狀態是:ALIVE狀態
接著訪問http://hadoop2:8080/:
上面的狀態是:STANDBY狀態,通過上面的這些現象可以知道Spark集群已經搭建成功
總結
以上是生活随笔為你收集整理的Spark自带的集群模式(Standalone),Spark/Spark-ha集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 江淮帅铃国四康明斯打火没反应开钥匙有电用
- 下一篇: 科鲁泽和宝来那个底盘高?