0


spark3.3.0安装&部署过程

为了防止不必要的报错,部署之前请务必从开头开始看,切勿跳过其中一个部署模式,因为每一个部署模式都是从上一个模式的配置上进行的

下载地址:https://archive.apache.org/dist/spark/

本文所下载版本为:

spark-3.3.0-bin-hadoop2

环境:

  • hadoop-2.7.5
  • jdk1.8.0
  • Scala

安装&部署过程

(Local)本地部署模式

所谓的Local模式,就是不需要其他任何节点资源就可以在本地执行Spark代码的环境

spark-3.3.0-bin-hadoop2.tgz

包上传至Linux并解压指定目录

tar -zxvf spark-3.3.0-bin-hadoop2.tgz -C /export/servers

为了方便后续操作,建议修改文件名(可忽略)

cd /export/servers
mv spark-3.3.0-bin-hadoop2 spark-3.3.0

添加环境变量

/etc/profile

sudovim /etc/profile

在文件内添加以下变量

exportSPARK_HOME=/export/servers/spark-3.3.0
exportPATH=$SPARK_HOME/bin:$HBASE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH

使用环境变量生效:

source /etc/profile

进入

spark-3.3.0

执行命令

bin/spark-shel

image-20220815182931997

看到这个界面表示本地启动成功

web端查看

启动成功后,可以输入网址进行Web UI监控页面访问

http://master:4040

image-20220815183325689

(Standalone)独立部署模式

local本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到对应的集群中去执行,这里我们来看看只使用Spark自身节点运行的集群模式,也就是我们所谓的独立部署(Standalone)模式。Spark的Standalone模式体现了经典的master-slave模式。

修改配置文件

进入

spark

conf

目录

cd /export/servers/spark-3.3.0/conf

修改以下配置

  • workers
  • spark-defaults.conf
  • spark-env.sh

这三个文件在目录里都是模板,这里我们需要各复制一份出来并删除模板后缀名

.template
cp workers.template workers

cp spark-defaults.conf.template spark-defaults.conf

cp spark-env.sh.template spark-env.sh

修改

workers

文件,删除

localhost

,添加以下内容

master
slave1
slave2

注意这里的节点,是你的分布式集群三台虚拟机的主机名

修改

spark-env.sh

,添加

JAVA_HOME

环境变量和对应的master节点

exportJAVA_HOME=/export/servers/jdk1.8.0_181
exportSPARK_MASTER_HOST=master
exportSPARK_MASTER_PORT=7077

注意:7077端口,相当于

slave2

内部通信的8020端口,此处的端口需要确认自己的Hadoop配置

默认就是7077,这里我们不做改动

分发spark文件给其他节点

scp -r /export/servers/spark-3.3.0 slave1:/export/servers

scp -r /export/servers/spark-3.3.0 slave2:/export/servers

porfile

环境配置文件发给其他节点并刷新配置

sudoscp -r /etc/profile slave1:/etc/profile

sudoscp -r /etc/profile slave2:/etc/profile
source /etc/profile

启动集群

执行脚本

sbin/start-all.sh

,注意是在spark目录下

sbin/start-all.sh

image-20220815185046232

查看三台服务器的进程

image-20220815190145607

查看master节点上的资源监控页面web端

http://master:8080

image-20220815190302094

提交应用

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
./examples/jars/spark-examples_2.12-3.3.0.jar \10
  • –class表示要执行程序的主类
  • –master spark://master:7077 独立部署模式,连接到Spark集群
  • spark-examples_2.12-3.0.0.jar 运行类所在的jar包
  • 数字10表示程序的入口参数,用于设定当前应用的任务数量

image-20220815191509485

提交参数说明

在提交应用中,一般会同时一些提交参数

bin/spark-submit \

--class <main-class>

--master <master-url> \... # other options<application-jar> \[application-arguments]

参数解释可选值举例–classSpark程序中包含主函数的类–masterSpark程序运行的模式(环境)模式:local[*]、spark://hadoop02:7077、Yarn–executor-memory 1G指定每个executor可用内存为1G符合集群内存配置即可,具体情况具体分析。–total-executor-cores 2指定所有executor使用的cpu核数为2个–executor-cores指定每个executor使用的cpu核数application-jar打包好的应用jar,包含依赖。这个URL在集群中全局可见。 比如hdfs:// 共享存储系统,如果是file:// path,那么所有的节点的path都包含同样的jarapplication-arguments传给main()方法的参数

配置历史服务器

**叨叨一句:以下端口号为

9000

的与

hadoop

core-site.xml

的配置文件中的一致的,有些人的可能是

8020

,也有些人的是

9000

**

由于

spark-shell

停止掉后,集群监控

master:4040

页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况。

修改

spar-defaults.conf

文件添加日志存储路径配置

spark.eventLog.enabled          true
spark.eventLog.dir              hdfs://master:9000/directory

image-20220815211308436

需要启动 hadoop 集群,HDFS 上的 directory 目录需要提前存在。

start-all.sh

hadoop fs -mkdir /directory

修改

spark-env.sh

文件, 添加日志配置

exportSPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://master:9000/directory 
-Dspark.history.retainedApplications=30"

image-20220815205328249

  • 参数1含义:WEB UI访问的端口号为18080
  • 参数2含义:指定历史服务器日志存储路径
  • 参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

分发配置文件

scp -r /export/servers/spark-3.3.0 slave1:/export/servers

scp -r /export/servers/spark-3.3.0 slave2:/export/servers

重新启动集群和历史服务

sbin/start-all.sh

sbin/start-history-server.sh

重新执行任务

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
./examples/jars/spark-examples_2.12-3.3.0.jar \10

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9J4qN8Z-1660795217488)(https://cdn.staticaly.com/gh/archenblog/imgs@master/imags/image-20220815202636140.webp)]

查看历史服务器

http://master:18080

image-20220815204834327

配置高可用(HA)

在集群中配置多个

Master

结点。这里的高可用采用

Zookeeper

设置。
集群规划:
masterslave1salve2MasterMasterZookeeperZookeeperZookeeperWorkerWorkerWorker
停止集群

sbin/stop-all.sh

逐个节点启动 Zookeeper

zkServer.sh start

修改

spark-env.sh

文件添加如下配置

#注释如下内容:#SPARK_MASTER_HOST=master#SPARK_MASTER_PORT=7077#添加如下内容:# Master 监控页面默认访问端口为 8080,但是可能会和 Zookeeper 冲突,# 所以改成 8989,也可以自定义,访问 UI 监控页面时请注意SPARK_MASTER_WEBUI_PORT=8989exportSPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER 
-Dspark.deploy.zookeeper.url=master,slave1,slave2
-Dspark.deploy.zookeeper.dir=/spark"

image-20220815205437396

分发配置文件

scp -r /export/servers/spark-3.3.0 slave1:/export/servers

scp -r /export/servers/spark-3.3.0 slave2:/export/servers

启动集群

sbin/start-all.sh

查看当前结点状态:

http://master:8989

image-20220815205806674

启动

slave1

的单独

Master节点

,此时 slave1 节点 Master 状态处于备用状态

sbin/start-master.sh

image-20220815210020557

image-20220815210113159

提交应用到高可用集群

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077,slave1:7077 \
./examples/jars/spark-examples_2.12-3.3.0.jar \10

如果报错,解决方法如下:

杀死

master

的master进程后再执行以上命令

image-20220815210710795

查看

slave1 

的 Master 资源监控 Web UI,稍等一段时间后,

slave1 

节点的 Master 状态提升为活动状态

217491)]

提交应用到高可用集群

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master:7077,slave1:7077 \
./examples/jars/spark-examples_2.12-3.3.0.jar \10

如果报错,解决方法如下:

杀死

master

的master进程后再执行以上命令

[外链图片转存中…(img-kfaEOiH0-1660795217492)]

查看

slave1 

的 Master 资源监控 Web UI,稍等一段时间后,

slave1 

节点的 Master 状态提升为活动状态

image-20220815211139689

标签: spark linux

本文转载自: https://blog.csdn.net/m0_61022929/article/details/126403124
版权归原作者 阿辰学弟 所有, 如有侵权,请联系我们删除。

“spark3.3.0安装&部署过程”的评论:

还没有评论