從物理部署層面上來看,Spark主要分為兩種類型的節點,Master節點和Worker節點,Master節點主要運行集群管理器的中心化部分,所承載的作用是分配Application到Worker節點,維護Worker節點,Driver,Application的狀態。Worker節點負責具體的業務運行。
從Spark程序運行的層面來看,Spark主要分為驅動器節點和執行器節點。
1、機器準備
準備兩臺以上Linux服務器,安裝好JDK1.8
我這里的是
ip地址 | 系統 |
---|---|
Carlota1 | CentOS7.3 |
Carlota2 | CentOS7.3 |
Carlota3 | CentOS7.3 |
2、下載Spark安裝包
http://spark.apache.org/downloads.html
3、上傳解壓
//上傳
scp spark-3.0.1-bin-hadoop3.2.tgz root@Carlota1:/usr/local/apps/
scp spark-3.0.1-bin-hadoop3.2.tgz root@Carlota2:/usr/local/apps/
scp spark-3.0.1-bin-hadoop3.2.tgz root@Carlota3:/usr/local/apps/
//解壓
tar -zxvf spark-3.0.1-bin-hadoop3.2.tgz
//改個名
mv spark-3.0.1-bin-hadoop3.2 spark-3.0.1
4、配置環境變量
vi /etc/profile
#Spark
export SPARK_HOME=/usr/local/apps/spark-3.0.1
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile
5、配置Spark【Standalone模式】
Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,我們選擇最具代表性的Standalone集群部署模式。
-
進入到Spark安裝目錄
cd /usr/local/apps/spark-3.0.1/conf
-
將slaves.template復制為slaves
cp slaves.template slaves
-
將spark-env.sh.template復制為spark-env.sh
cp spark-env.sh.template spark-env.sh
-
修改slaves文件,將work的hostname輸入
vi slaves
Carlota2
Carlota3
- 修改spark-env.sh文件
vi spark-env.sh
,添加如下配置:
SPARK_MASTER_HOST=Cralota1
SPARK_MASTER_PORT=7077
- 同步數據到Carlota2和Carlota3
scp -r conf root@Carlota2:/usr/local/apps/spark-3.0.1
scp -r conf root@Carlota3:/usr/local/apps/spark-3.0.1
-
進入sbin目錄
-
vi spark-config.sh
在下方添加
JAVA_HOME=/usr/local/java/jdk1.8
- 同步一下
scp -r spark-config.sh root@Carlota2:/usr/local/apps/spark-3.0.1/sbin
scp -r spark-config.sh root@Carlota3:/usr/local/apps/spark-3.0.1/sbin
Spark集群配置完畢,目前是1個Master,2個Wor
6、Spark啟動集群
- Carlota1上啟動集群
./sbin/start-all.sh
[root@Carlota1 spark-3.0.1]# ./sbin/start-all.sh starting org.apache.spark.deploy.master.Master, logging to /usr/local/apps/spark-3.0.1/logs/spark-root-org.apache.spark.deploy.master.Master-1-Carlota1.outCarlota2: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/apps/spark-3.0.1/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-Carlota2.outCarlota3: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/apps/spark-3.0.1/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-Carlota3.out
- 啟動后執行jps命令,主節點上有Master進程,其他子節點上有Work進行
[root@Carlota1 spark-3.0.1]# jps
10551 Master
10603 Jps
[root@Carlota3 spark-3.0.1]# jps
17085 Jps
16959 Worker
- 登錄Spark管理界面查看集群狀態(主節點):http://Carlota1:8080/
到此為止,Spark集群安裝完畢.
注意:如果遇到 “JAVA_HOME not set” 異常,可以在sbin目錄下的spark-config.sh 文件中加入如下配置:
export JAVA_HOME=XXXX