news 2026/7/13 14:27:11

Spark部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spark部署

local模式:

local模式就是在本地部署单个spark服务,local模式多数用于自学形式,在本地进行练手和测试。 官网下载地址: Apache Archive Distribution Directory

下载之后将文件夹在linux系统中进行解压缩操作:

其实通过上面的计算,我们就成功将他部署到了local中,之后执行下面的命令展示一下:

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

命令详解

这是一个使用 Spark 自带的spark-submit脚本来提交任务的标准命令,作用是计算圆周率(π)的近似值。这条命令是学习 Spark 时最经典的入门示例,下面我为你逐行拆解它的含义。

  • bin/spark-submit:这是 Spark 提供的统一任务提交脚本,用于将你的应用程序提交到集群上运行。bin/表示它在 Spark 安装目录下的bin文件夹中。

  • \:这是 Linux 系统的续行符,告诉终端这行命令还没结束,下一行是它的延续。它本身没有实际功能,只是为了提升可读性。

  • --class org.apache.spark.examples.SparkPi:指定程序运行的入口类。Spark 会去执行spark-examplesJAR 包中SparkPi类的main方法。

  • --master local[2]:指定 Spark 任务的运行模式

    • local表示在本地模式运行,不会连接任何集群,非常适合开发和测试。

    • [2]表示启用2 个线程来模拟并行计算,相当于使用 2 个 CPU 核心来执行任务。

  • ./examples/jars/spark-examples_2.12-3.3.1.jar:指定要运行的应用程序 JAR 包的路径。这个包包含了 Spark 官方提供的各种示例程序,_2.12表示它是为 Scala 2.12 编译的,-3.3.1则是 Spark 版本号。

  • 10:这是传给SparkPi示例程序的参数。在SparkPi程序中,这个数字代表循环计算的次数,数值越大,计算量越大,估算出的圆周率也越精确

spark web看板观测执行中的任务

Spark web UI at http://192.168.1.191:4040

但是当前的看板只能在任务执行的时候可以观测,执行之后这个页面就看不到了,他自己就会退出。

Yarn部署

注意下面的部署都是在你已经拥有一个可以使用的hadoop为前提进行配置。

不是到yarn

修改spark中的配置文件/conf/spark-env.sh,添加YARN_CONF_DIR配置,保证后续运行任务的路径都变成集群路径

[atguigu@hadoop102 conf]$ mv spark-env.sh.template spark-env.sh

[atguigu@hadoop102 conf]$ vim spark-env.sh

YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop

之后通过命令启动hadoop:

启动HDFS以及YARN集群

$ sbin/start-dfs.sh

$ sbin/start-yarn.sh

执行命令进行测试:

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
./examples/jars/spark-examples_2.12-3.3.1.jar \
10

可以计算出结果证明执行成功。

因为是部署在yarn上的,我们可以打开Yarn资源管理页面查看:

地址:http://ResourceManager主机IP:8088/cluster/apps

查看运行日志

目前是Hadoop的作业运行日志展示,如果想获取Spark的作业运行日志,请进行如下配置:

1)修改spark-default.conf文件,配置日志存储路径(写)

vim spark-defaults.conf

spark.eventLog.enabled true

spark.eventLog.dir hdfs://hadoop102:8020/directory

2)修改spark-env.sh文件,添加如下配置:

vim spark-env.sh

export SPARK_HISTORY_OPTS="

-Dspark.history.ui.port=18080

-Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory

-Dspark.history.retainedApplications=30"

# 参数1含义:WEBUI访问的端口号为18080

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

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

3)hdfs://hadoop102:8020/directory 这个文件一定要存在,大家自己要创建一下。

4)为了能从Yarn上关联到Spark历史服务器,需要配置spark历史服务器关联路径。

目的:点击yarn(8088)上spark任务的history按钮,进入的是spark历史服务器(18080),而不再是yarn历史服务器(19888)。

修改配置文件/opt/module/spark-yarn/conf/spark-defaults.conf

添加如下内容:

spark.yarn.historyServer.address=hadoop102:18080

spark.history.ui.port=18080

重启Spark历史服务

sbin/stop-history-server.sh

sbin/start-history-server.sh

配置完成后再次点击就可以直接跳转到spark历史页面中

Spark On YARN 两种部署模式详解

client模式

  1. Driver 进程运行位置Driver 程序运行在提交任务的本地客户端机器(你敲 spark-submit 命令的服务器),不在 YARN 容器中。
  2. 资源容器分工
    • AM(ApplicationMaster):YARN 集群中 NodeManager 的容器,仅负责申请资源、调度 Executor;
    • Driver:本地客户端进程;
    • Executor:集群各个 NodeManager 容器,执行计算任务。
  3. 日志输出位置
    • Spark 运行打印的计算日志、print 输出:直接打印在本地提交命令的终端窗口
    • YARN 容器日志:存于 Hadoop 集群日志服务器,需用yarn logs -applicationId查看。
  4. 网络与适用场景
    • 客户端机器必须全程在线、网络稳定,一旦断开终端 / 关闭服务器,Driver 进程被杀,任务直接失败;
    • 适合开发调试:本地实时看日志、排查代码报错,测试小任务。
  5. 优缺点✅ 调试方便,日志实时输出在本地; ❌ 提交机器占用资源,长期跑任务不稳定,网络波动易丢任务。

cluster 模式:

  1. Driver 进程运行位置Driver 内嵌在YARN ApplicationMaster 容器中,运行在集群某一台 NodeManager 节点,不在本地提交机。
  2. 资源容器分工
    • AM 容器:同时承载 ApplicationMaster + Spark Driver 两个核心程序;
    • Executor:集群其他 NodeManager 容器,执行 RDD / 算子计算。
  3. 日志输出位置所有 Spark 日志、计算输出、异常堆栈全部存在 YARN 集群日志系统,本地终端只会打印任务提交信息,看不到业务输出;必须执行yarn logs -applicationId 任务ID查看完整日志。
  4. 网络与适用场景提交命令后,本地客户端即可断开、关机,任务不受影响;Driver 在集群内部,节点间网络通信更快稳定; 适合生产环境定时 / 长期离线计算任务
  5. 优缺点✅ 任务稳定性高,不依赖提交客户端机器,集群内部通信性能更好,生产标准用法; ❌ 调试麻烦,不能实时看本地日志,排错需要去 YARN 拉取日志。
对比维度YARN ClientYARN Cluster
Driver 所在机器提交任务的本地客户端集群中某台 NodeManager(AM 容器)
客户端是否可断开不可断开,断则任务失败提交完即可断开,任务正常运行
实时日志位置本地终端直接打印仅集群 YARN 日志,本地无业务输出
资源占用占用提交服务器 CPU / 内存全部资源由 YARN 集群调度
生产推荐不推荐,仅调试用生产环境标准部署模式
网络依赖客户端与集群保持长连接Driver 在集群内部,网络开销更小

client命令:

bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode client \ ./examples/jars/spark-examples_2.12-3.3.1.jar \ 10

-------------------------------------------------------------------------------------------------------------------------

bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ ./examples/jars/spark-examples_2.12-3.3.1.jar \ 10

cluster模式命令

bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster ./examples/jars/spark-examples_2.12-3.3.1.jar 10

上面是当前最常见的两种部署方式,当然也可以使用k8s进行部署,大家敬请期待

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 14:26:45

LunaTranslator窗口置顶终极指南:游戏翻译两不误的3种实用技巧

LunaTranslator窗口置顶终极指南:游戏翻译两不误的3种实用技巧 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator 还在为游戏翻译窗口遮挡游戏画面而烦恼吗&…

作者头像 李华
网站建设 2026/7/13 14:26:22

2026大模型完整学习路线:从零基础到就业落地全指南

当下生成式AI迎来全面爆发,大模型(LLM)已经从前沿技术变成职场通用能力,算法、开发、产品、运营等多个岗位都在加码大模型技能。但很多初学者学习毫无章法,要么一上来死磕底层公式、源码,劝退放弃&#xff…

作者头像 李华
网站建设 2026/7/13 14:24:55

洛雪音乐音源完全指南:解锁全网免费无损音乐的终极方案

洛雪音乐音源完全指南:解锁全网免费无损音乐的终极方案 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 想要免费收听全网音乐却苦于找不到合适的音源?洛雪音乐音源为你提供…

作者头像 李华
网站建设 2026/7/13 14:22:48

FitGirl游戏启动器完整指南:三步安装,轻松管理压缩游戏

FitGirl游戏启动器完整指南:三步安装,轻松管理压缩游戏 【免费下载链接】Fitgirl-Repack-Launcher An Electron launcher designed specifically for FitGirl Repacks, utilizing pure vanilla JavaScript, HTML, and CSS for optimal performance and c…

作者头像 李华