Spark运行模式详解

本文详细介绍了Spark的三种运行模式:Local模式,包括安装、启动、应用测试;Standalone模式,涵盖集群规划、安装、配置、启动和应用提交;以及Yarn模式,讲解了其优势、安装配置和应用提交过程。通过本文,读者能全面理解Spark在不同模式下的运行方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 Local 模式

1、简介:Local模式可和你在IDEA里面设置的local[*]不同。所谓的 Local 模式,就是不需要其他任何节点资源就可以在本地执行 Spark 代码的环境,说的更加明白点就是单机模式。

2、安装本地模式

下载spark-2.4.5-bin-hadoop2.7.tgz包 上传到 Linux 并解压缩,放置在指定位置,路径中不要包含中文或空格

官网地址:https://spark.apache.org/downloads.html

tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /opt/module
cd /opt/module
mv spark-2.4.5-bin-hadoop2.7 spark-local

3、启动 Local 环境

3.1、进入解压缩后的路径,执行如下指令

bin/spark-shell

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

http://hadoop100:4040

3.3、命令行验证

创建一个 /opt/data/word.txt 文件。在命令行工具中执行如下代码进行wordcount

sc.textFile("/opt/data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

3.4、退出本地模式

按键 Ctrl+C 或输入 Scala 指令quti

4、提交应用测试(在linux命令行执行)

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.11-2.4.5.jar \
10

参数说明:

1) --class 表示要执行程序的主类, 此处可以更换为自己写的应用程序

2) --master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟 CPU 核数量

3) spark-examples_2.12-3.0.0.jar 运行的应用类所在的 jar 包, 实际使用时,设定为自己打的 jar 包

4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

执行结果:

二、Standalone 模式

1、简介:Standalone模式就是独立部署模式,简单点说就是多台机器每台上面都安装一个spark组成master-slave模式的集群

2、安装Standalone模式

集群规划:

 hadoop100hadoop100hadoop100
sparkWorker MasterWorkerWorker

2.2、解压缩文件(同本地模式相同)

tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /opt/module
cd /opt/module
mv spark-2.4.5-bin-hadoop2.7 spark-standalone

3、修改配置文件

3.1、 进入解压缩后路径的 conf 目录,修改 slaves.template 文件名为 slaves,并添加集群work节点

mv slaves.template slaves

添加内容,在最后添加即可

3.2、修改 spark-env.sh.template 文件名为 spark-env.sh,添加 JAVA_HOME 环境变量和集群对应的 master 节点

mv spark-env.sh.template spark-env.sh

添加内容

export JAVA_HOME=/opt/module/jdk1.8.0_144
SPARK_MASTER_HOST=hadoop100
SPARK_MASTER_PORT=7077

3.3、分发到另外两台机器上,如果没有分发脚本可以拷贝 spark-standalone 目录到另外两台

scp -r spark-standalone oyl@hadoop101:/opt/module
scp -r spark-standalone oyl@hadoop102:/opt/module

4、启动集群

sbin/start-all.sh

查看进程

查看 Master 资源监控 Web UI 界面: http://hadoop100:8080

5、提交应用验证

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

参数说明:

1) --class 表示要执行程序的主类

2) --master spark://linux1:7077 独立部署模式,连接到 Spark 集群

3) spark-examples_2.12-3.0.0.jar 运行类所在的 jar 包

4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

执行任务时,默认采用服务器集群节点的总核数,每个节点内存 1024M

6、配置历史服务

为了防止spark-shell进程挂掉后,集群监控 linux1:4040 页面就看不到历史任务的运行情况,所以开发时都配置历史服务器记录任务运行情况

6.1、修改 spark-defaults.conf.template 文件名为 spark-defaults.conf,配置日志存储路径

mv spark-defaults.conf.template spark-defaults.conf
添加内容:
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop100:9000/directory

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

6.2、修改 spark-env.sh 文件, 添加日志配置

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop100:9000/directory
-Dspark.history.retainedApplications=30"

参数说明:

参数 1 含义: WEB UI 访问的端口号为 18080

参数 2 含义:指定历史服务器日志存储路径

参数 3 含义:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

6.3、集群所有spark节点都需要配置

6.4、重新启动集群和历史服务

sbin/start-all.sh
sbin/start-history-server.sh

6.5、重新执行任务验证

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop100:7077 \
./examples/jars/spark-examples_2.11-2.4.5.jar \
10

6.6、查看历史服务: http://hadoop100:18080

三、Yarn 模式

1、简介:

独立部署(Standalone)模式由 Spark 自身提供计算资源,无需其他框架提供资源。 这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是Spark 主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更靠谱一些。 所以我们配置成 Yarn 环境下运行。

2、安装yarn模式

只需要在一台机器上安装本地模式安装即可

tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz -C /opt/module
cd /opt/module
mv spark-2.4.5-bin-hadoop2.7 spark-yarn

3、修改配置文件

3.1修改 hadoop 配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml, 并分发(hadoop集群所有集群都要修改)

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

3.2、修改 spark-yarn/conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置

添加在最后即可

export JAVA_HOME=/opt/module/jdk1.8.0_144
YARN_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop

4、启动 HDFS 以及 YARN 集群

5、提交应用

6、查看 http://hadoop101:8088 页面,点击 History,查看历史页面

7、配置历史服务器(同Standalone 模式的历史服务器配置)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值