Spark,集群搭建之Yarn模式

以下是Spark基于Yarn模式的集群搭建关键步骤(需先部署Hadoop Yarn集群):

一、环境准备

  1. 确认Hadoop已运行
  • 确保HDFS、Yarn ResourceManager和NodeManager正常启动。
  1. 安装Java
  • 所有节点安装JDK 8+,配置 JAVA_HOME 环境变量。
  1. 关闭防火墙

bash

systemctl stop firewalld && systemctl disable firewalld

二、下载与配置Spark

  1. 下载Spark包
  • 官网下载对应Hadoop版本的Spark(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。
  1. 解压与配置

bash

tar -zxvf spark-3.5.0-bin-hadoop3.tgz -C /opt

cd /opt/spark-3.5.0-bin-hadoop3/conf

  1. 修改配置文件

bash

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 实际JDK路径

export HADOOP_CONF_DIR=/etc/hadoop/conf # Hadoop配置目录

  • spark-defaults.conf (若无则新建):

bash

spark.master yarn

spark.eventLog.enabled true

spark.eventLog.dir hdfs://nameservice1/spark-logs # HDFS日志路径(需提前创建)

三、分发Spark到所有节点

bash

scp -r /opt/spark-3.5.0-bin-hadoop3 slave1:/opt

scp -r /opt/spark-3.5.0-bin-hadoop3 slave2:/opt

  • 确保所有节点 HADOOP_CONF_DIR 路径正确(与Hadoop配置一致)。

四、验证与提交任务

  1. 测试HDFS连通性
  • 在任意节点执行:

bash

hdfs dfs -mkdir -p /spark-logs # 创建日志目录(需与配置一致)

hdfs dfs -chmod -R 777 /spark-logs

  1. 提交Spark任务到Yarn

bash

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode cluster \ # 可选client模式(默认)

--executor-memory 2g \

--num-executors 3 \

./examples/jars/spark-examples_*.jar 100

  1. 查看任务状态
  • Yarn Web界面: http://resourcemanager_ip:8088/cluster ,查看应用运行情况。

  • Spark历史服务器(需配置 spark.history.fs.logDirectory ): http://master_ip:18080 。

注意事项

  1. 资源分配
  • 通过 --executor-memory 和 --executor-cores 控制单个Executor资源。

  • Yarn全局资源需在 yarn-site.xml 中配置(如 yarn.nodemanager.resource.memory-mb )。

  1. 日志存储
  • 确保HDFS路径可写,否则任务可能失败。
  1. 版本兼容性
  • Spark与Hadoop版本需兼容(如Spark 3.5.x对应Hadoop 3.2+)。
  1. 高可用性
  • 若Yarn启用HA,需在 spark-defaults.conf 中配置 spark.yarn.resourceManager.address 为HA地址。
相关推荐
howard20052 天前
2.4.3 集群模式运行Spark项目
spark·项目打包·提交运行
孤雪心殇2 天前
快速上手数仓基础知识
数据仓库·hive·spark
渣渣盟2 天前
Spark 性能调优实战:从开发到生产落地
javascript·ajax·spark
渣渣盟3 天前
大数据技术栈全景图:从零到一的入门路线(深度实战版)
大数据·hadoop·python·flink·spark
DolphinScheduler社区4 天前
DolphinScheduler 3.3.2 如何调用 DataX 3.0 + SeaTunnel 2.3.12?附 Demo演示!
java·spark·apache·海豚调度·大数据工作流调度
Leo.yuan4 天前
数据仓库是什么?数据仓库和大数据平台、数据湖、数据中台、湖仓一体有什么区别?
大数据·数据仓库·spark
heiqizero4 天前
Spark RDD动作算子
spark
heiqizero4 天前
Spark RDD转换算子02
spark
heiqizero5 天前
Spark RDD转换算子01
spark
武子康8 天前
大数据-278 Spark MLib-GBDT梯度提升决策树详解:从原理到实战案例
大数据·后端·spark