当前位置: 首页 > news >正文

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进行部署,大家敬请期待

http://www.cnnetsun.cn/news/3343777.html

相关文章:

  • LunaTranslator窗口置顶终极指南:游戏翻译两不误的3种实用技巧
  • 2026大模型完整学习路线:从零基础到就业落地全指南
  • Kimodo-SOMA-RP-v1.1商业应用:媒体娱乐和机器人领域的10个创新案例
  • 阿里云SSL证书自动续签与部署完全指南:从托管服务到开源工具全方案解析
  • 洛雪音乐音源完全指南:解锁全网免费无损音乐的终极方案
  • FitGirl游戏启动器完整指南:三步安装,轻松管理压缩游戏
  • 嵌入式大模型边缘部署(MTK方向)
  • 创建SWC
  • TIM编码器接口
  • CN-Celeb 与 VoxCeleb 对比评测:11 种体裁对说话人识别 EER 的影响分析
  • 【AI Agent安全防御红皮书】:20年攻防专家亲授7大隐私泄露高危场景与实时拦截方案
  • TS2007FC与STM32L053R8音频系统设计与优化
  • 银行第三方渠道前置设计图
  • ragas官方文档中文版(六十八)
  • 免费解锁Wand高级功能:Wand-Enhancer终极使用指南
  • 终极指南:如何用免费软件Fan Control精准控制Windows风扇转速与噪音平衡
  • HCIP-BGP实验
  • 5分钟玩转猫抓扩展:让网页视频下载变得像点外卖一样简单
  • UnityFigmaBridge实战:打通Figma与Unity的UI设计开发全流程
  • 怪物猎人:世界风灵月影修改器下载67项修改器(带汉化)
  • PIC18LF47K42驱动CMT-8540S-SMT蜂鸣器实现智能硬件音频反馈
  • AI Agent 多智能体协作系统:从单 Agent 到多 Agent 架构的工程实践
  • AI自动化科研突破:弱监督强假说验证与成本效益分析
  • 从零搭建AI开发环境:Windows下CUDA、cuDNN、Anaconda与GPU版PyTorch一站式配置指南
  • Docker Compose编排极狐GitLab:一键部署与配置实战
  • Ornith-1.0-35B-6bit配置文件详解:如何优化模型性能与显存占用
  • Illustrator脚本深度解析:矢量图形自动化处理的技术实现
  • HSTracker:macOS炉石传说智能辅助工具的终极完整指南
  • GitHub汉化插件:3分钟让英文界面变中文的终极指南
  • RAG系统优化与效果评估实践指南