Spark多模式部署实战(从Local到YARN一站式通关) 1. 环境准备从零搭建Spark实验环境第一次接触Spark的朋友可能会被各种术语搞晕其实部署Spark就像组装电脑一样简单。我建议使用Ubuntu 18.04作为实验系统实测下来兼容性最好。下面是详细的环境清单虚拟机配置VMware Workstation 16 或 VirtualBox 6.1分配至少4GB内存基础软件栈JDK 1.8注意必须是Oracle JDKOpenJDK可能遇到奇怪问题Python 3.6推荐Anaconda3管理环境Hadoop 2.7.7仅YARN模式需要踩坑提醒我曾因为使用OpenJDK 11导致Spark Shell无法启动报错信息非常隐晦。建议用java -version确认输出包含Java(TM) SE Runtime Environment安装Hadoop时有个小技巧先单独测试HDFS和YARN是否正常工作。我习惯用以下命令验证hdfs dfs -mkdir /test hdfs dfs -put /etc/hosts /test hadoop jar /path/to/hadoop-mapreduce-examples.jar wordcount /test/hosts /output2. Spark安装与Local模式实战2.1 版本选择与安装Spark官网提供了多个版本新手常被各种打包版本搞懵。这里直接给结论学习环境选Pre-built for Apache Hadoop 2.7版本生产环境选对应Hadoop版本的Without Hadoop版本安装步骤其实就三步tar -xzf spark-3.3.1-bin-hadoop2.tgz -C /opt cd /opt ln -s spark-3.3.1-bin-hadoop2 spark echo export SPARK_HOME/opt/spark ~/.bashrc2.2 Local模式快速验证Local模式是Spark的玩具车模式适合快速验证代码。启动交互式环境# Scala版本 spark-shell --master local[2] # Python版本 pyspark --master local[2]这里的local[2]表示使用2个线程相当于模拟两个CPU核心。做个简单测试在spark-shell中val textFile sc.textFile(file:///etc/hosts) textFile.filter(_.contains(localhost)).count()实用技巧如果看到满屏INFO日志可以修改conf/log4j.properties把log4j.rootCategory改为WARN3. 伪分布式Standalone模式部署3.1 关键配置详解Standalone模式是Spark自带的集群模式配置文件主要修改两个地方spark-env.shexport SPARK_MASTER_HOSTyour_hostname export SPARK_WORKER_CORES2 export SPARK_WORKER_MEMORY4gworkers旧版本叫slaveslocalhost3.2 服务启停与管理启动集群就像开机关机一样简单# 一键启停 sbin/start-all.sh sbin/stop-all.sh # 单独控制组件 sbin/start-master.sh sbin/start-worker.sh spark://master:7077验证集群状态有两种方式命令行curl http://localhost:8080Web UI浏览器访问http://your_ip:80803.3 提交作业实战用Standalone模式运行WordCountspark-submit --master spark://your_host:7077 \ --class org.apache.spark.examples.SparkPi \ $SPARK_HOME/examples/jars/spark-examples_2.12-3.3.1.jar \ 100遇到过的一个典型报错WARN TaskSchedulerImpl: Initial job has not accepted any resources这通常是资源不足导致的解决方法要么增加worker要么调小--executor-memory参数。4. 集成YARN集群实战4.1 前置条件检查YARN模式下需要确保Hadoop集群正常运行start-yarn.shHADOOP_CONF_DIR环境变量已设置Spark配置中包含YARN支持验证YARN是否就绪yarn node -list4.2 配置调优要点在spark-defaults.conf中添加spark.yarn.jars hdfs:///spark/jars/* spark.driver.memory 2g spark.executor.instances 3建议提前上传Spark依赖包到HDFShdfs dfs -mkdir /spark hdfs dfs -put $SPARK_HOME/jars/* /spark/jars/4.3 YARN作业提交提交作业时有个部署模式的选择# 客户端模式日志直接输出到控制台 spark-submit --master yarn --deploy-mode client ... # 集群模式适合生产环境 spark-submit --master yarn --deploy-mode cluster ...常见问题处理内存不足在yarn-site.xml中调整yarn.nodemanager.resource.memory-mb类冲突添加--conf spark.executor.extraClassPath/path/to/libs5. 三种模式对比与选型建议通过实际测试对比8核CPU/16GB内存环境模式启动速度资源隔离适合场景最大并发Local3秒无开发调试线程数Standalone~30秒一般专用Spark集群节点×核数YARN~1分钟完善混合部署环境队列配额个人经验法则本地开发用Local模式测试环境用Standalone省资源生产环境必选YARN/Mesos最后分享一个排查问题的万能命令# 查看详细日志YARN模式 yarn logs -applicationId app_id | less

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/23 4:54:42
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/23 8:01:55
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/23 8:02:11
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/23 8:01:38
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/23 8:01:21
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/23 8:02:28

日新闻

周新闻