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-examples JAR 包中 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 Client YARN 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进行部署,大家敬请期待

相关推荐
FII工业富联科技服务37 分钟前
Omniverse + Isaac Teleop + 合成数据:工业富联机器人大脑训练+执行落地闭环拆解
大数据·人工智能·深度学习·机器学习·机器人·制造·具身智能
airank3 小时前
2026年GEO服务商选型指南:系统梳理服务商分类框架、主流服务商能力横评、企业级选型六大维度及避坑要点,帮助企业在AI搜索时代做出科学决策。
大数据·人工智能·数据分析·aigc
Delite8023 小时前
摆脱实验室束缚:便携式卡尔费休微量水分检测技术与现场应用解析
大数据·网络·人工智能
袋鼠云数栈3 小时前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
ACP广源盛139246256733 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
大大大大晴天4 小时前
大数据数据治理到底治理什么:从“数据可用”到“数据可信”
大数据
ACP广源盛139246256734 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
策案案案5 小时前
YOLO: 将AI Agents嵌入到IntelliJ IDEA
java·大数据·人工智能·笔记·yolo·microsoft·intellij-idea
一支标6 小时前
【手机+电脑】通达信《K策王》策略战法K策王技术副图指标使用说明
大数据·智能手机·电脑
坐吃山猪6 小时前
【多线程】Lock与Condition
大数据·数据库