Spark3.0.0集群搭建


  说明

1.1 基础环境

hadoop3.2.1集群已经安装完成

 Hadoop 3.2.1 集群

 JDK 1.8

 

1.2  下载Spark 软件包

官方网址如下:

http://spark.apache.org/downloads.html

 

1.3 下载scala 软件包

官方网址如下:

https://www.scala-lang.org/

 

  安装scala

2.1  解压scala 到指定目录

[root@hadoop1 hadoop]# mkdir /hadoop/scala

上传scala-2.13.3.tgz /hadoop/soft

tar -xvf scala-2.13.3.tgz -C /hadoop/scala/

 

2.2 修改环境变量

修改/etc/profile,  添加相应的配置信息

[root@hadoop1 scala-2.13.3]# vi /etc/profile

#set scala environment

export SCALA_HOME=/hadoop/scala/scala-2.13.3

export PATH=$PATH:${JAVA_PATH}:$SCALA_HOME/bin 

 

生效环境变量

[root@hadoop1 scala-2.13.3]# source /etc/profile

 

2.3 测试scala 配置是否正常  

 

 

 

依次安装各个节点。


  安装配置spark

3.1 上传并解压spark spark 安装目录

tar -xvf spark-3.0.0-bin-hadoop3.2.tgz -C

 

3.2 修改环境变量

修改/etc/profile,  添加相应的配置信息

[root@hadoop1 scala-2.13.3]# vi /etc/profile

#set spark environment

export SPARK_HOME=/hadoop/spark/spark-3.0.0-bin-hadoop3.2

export SPARK_EXAMPLES_JAR=$SPARK_HOME/examples/jars/spark-examples_2.12-3.0.0.jar

export PATH=$PATH:${JAVA_PATH}:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin

 

生效环境变量

[root@hadoop1 scala-2.13.3]# source /etc/profile

 

3.3 修改spark-env.sh

[root@hadoop1 ~]# cd /hadoop/spark/spark-3.0.0-bin-hadoop3.2/conf/

[root@hadoop1 conf]# cp spark-env.sh.template spark-env.sh

 

[root@hadoop1 conf]# vi spark-env.sh

export SCALA_HOME=/hadoop/scala/scala-2.13.3

export JAVA_HOME=/hadoop/jdk1.8/jdk1.8.0_211-amd64

export SPARK_MASTER_IP=hadoop1

# 设置web 页面端口

export SPARK_MASTER_WEBUI_PORT=8888

# Spark master worker 守护进程的JVM 选项(默认:none)

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop1:2181,hadoop2:2181,hadoop3:2181 -Dspark.deploy.zookeeper.dir=/spark"

 

3.4 修改slaves

( 在其中加入集群的从节点的主机或者IP)

[root@hadoop1 conf]# cp slaves.template slaves

[root@hadoop1 conf]# vi slaves

hadoop2

hadoop3

 

3.5 spark 拷贝到其他节点  

[root@hadoop1 hadoop]# scp -r /hadoop/spark hadoop2:/hadoop/

[root@hadoop1 hadoop]# scp -r /hadoop/spark hadoop3:/hadoop/

 

3.6 启动spark

首先确保hadoop 集群已经正常启动

[root@hadoop1 soft]# jps

23968 NameNode

23666 QuorumPeerMain

28147 Jps

24472 DFSZKFailoverController

24920 ResourceManager

24265 JournalNode

26301 HMaster

25327 JobHistoryServer

 

启动master start-master.sh

[root@hadoop1 soft]#  start-master.sh

starting org.apache.spark.deploy.master.Master, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.master.Master-1-hadoop1.out

 

检查

[root@hadoop1 soft]# jps

23968 NameNode

23666 QuorumPeerMain

28293 Master

24472 DFSZKFailoverController

24920 ResourceManager

24265 JournalNode

28363 Jps

26301 HMaster

25327 JobHistoryServer

可以看到master 已经启动

 

启动slaves start-slaves.sh

[root@hadoop1 soft]# start-slaves.sh 

hadoop3: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadoop3.out

hadoop2: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadoop2.out

 

检查hadoop2

[root@hadoop2 soft]# jps

15584 Worker

12210 ResourceManager

11731 NameNode

13155 HMaster

13077 HRegionServer

12038 DFSZKFailoverController

15638 Jps

11559 QuorumPeerMain

11931 JournalNode

11820 DataNode

12287 NodeManager

 

检查hadoop3

[root@hadoop3 soft]# jps

5088 JournalNode

4979 DataNode

5763 HRegionServer

4813 QuorumPeerMain

5245 NodeManager

7390 Worker

7455 Jps

 

修改SPARK_HOME/sbin 下的start-all.sh stop-all.sh 这两个文件的名字

上面是单独启动master slaves ,我们也可以使用start-all.sh stop-all.sh 来启动会关闭spark 集群。

在使用这两个命令之前,我们可以修改这两个文件名字,如start-spark-all.sh stop-spark-all.sh

原因:

如果集群中也配置HADOOP_HOME ,那么在HADOOP_HOME/sbin 目录下也有start-all.sh stop-all.sh 这两个文件,当你执行这两个文件,系统不知道是操作hadoop 集群还是spark 集群。修改后就不会冲突了,当然,不修改的话,你需要进入它们的sbin 目录下执行这些文件,这肯定就不会发生冲突了。我们配置SPARK_HOME 主要也是为了执行其他spark 命令方便。

[root@hadoop2 soft]# cd /hadoop/spark/spark-3.0.0-bin-hadoop3.2/sbin/

[root@hadoop2 sbin]# mv start-all.sh start-spark-all.sh

[root@hadoop2 sbin]# mv stop-all.sh stop-spark-all.sh

 

修改后可以使用下面方法启动关闭spark 集群

[root@hadoop1 sbin]#  start-spark-all.sh 

starting org.apache.spark.deploy.master.Master, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.master.Master-1-hadoop1.out

hadoop3: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadoop3.out

hadoop2: starting org.apache.spark.deploy.worker.Worker, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadoop2.out

[root@hadoop1 sbin]# jps

23968 NameNode

29168 Jps

23666 QuorumPeerMain

29107 Master

24472 DFSZKFailoverController

24920 ResourceManager

24265 JournalNode

26301 HMaster

25327 JobHistoryServer

 

[root@hadoop2 ~]# jps

16352 Worker

16433 Jps

12210 ResourceManager

11731 NameNode

13155 HMaster

13077 HRegionServer

12038 DFSZKFailoverController

11559 QuorumPeerMain

11931 JournalNode

11820 DataNode

12287 NodeManager

 

[root@hadoop3 sbin]# jps

5088 JournalNode

7936 Jps

4979 DataNode

5763 HRegionServer

7863 Worker

4813 QuorumPeerMain

5245 NodeManager

 

hadoop2 , 启动master ,实现master HA

[root@hadoop2 conf]# start-master.sh 

starting org.apache.spark.deploy.master.Master, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.master.Master-1-hadoop2.out

[root@hadoop2 conf]# jps

17584 Jps

12210 ResourceManager

11731 NameNode

13155 HMaster

13077 HRegionServer

17541 Master

12038 DFSZKFailoverController

11559 QuorumPeerMain

11931 JournalNode

11820 DataNode

12287 NodeManager

17439 Worker

 

3.7 查看spark web  

http://192.168.242.81:8888/

http://192.168.242.82:8888/

 

3.8 测试主备自动切换

hadoop1 节点中查看并杀掉master 进程

root@hadoop1 conf]# jps

23968 NameNode

23666 QuorumPeerMain

24472 DFSZKFailoverController

24920 ResourceManager

29960 Master

24265 JournalNode

26301 HMaster

30125 Jps

25327 JobHistoryServer

[root@hadoop1 conf]#  kill -9 29960

[root@hadoop1 conf]# jps

23968 NameNode

23666 QuorumPeerMain

30147 Jps

24472 DFSZKFailoverController

24920 ResourceManager

24265 JournalNode

26301 HMaster

25327 JobHistoryServer

 

Hadoop2 自动切换成master alive 节点

自动切换后,原来运行的job 应该也不受影响,这里不做演示。

 

启动hadoop1 master

[root@hadoop1 conf]# start-master.sh 

starting org.apache.spark.deploy.master.Master, logging to /hadoop/spark/spark-3.0.0-bin-hadoop3.2/logs/spark-root-org.apache.spark.deploy.master.Master-1-hadoop1.out

[root@hadoop1 conf]# jps

23968 NameNode

23666 QuorumPeerMain

30213 Master

24472 DFSZKFailoverController

24920 ResourceManager

30248 Jps

24265 JournalNode

26301 HMaster

25327 JobHistoryServer

 

Hadoop2 自动切换成master standby 节点

 

至此,spark HA 集群搭建完成。


请使用浏览器的分享功能分享到微信等