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

 

一、环境准备

 

1. 确认Hadoop已运行

 

- 确保HDFS、Yarn ResourceManager和NodeManager正常启动。

 

2. 安装Java

 

- 所有节点安装JDK 8+,配置 JAVA_HOME 环境变量。

 

3. 关闭防火墙

bash

systemctl stop firewalld && systemctl disable firewalld

 

 

二、下载与配置Spark

 

1. 下载Spark包

 

- 官网下载对应Hadoop版本的Spark(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。

 

2. 解压与配置

bash

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

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

 

 

3. 修改配置文件

 

-  spark-env.sh (新增或修改):

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  

 

 

2. 提交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  

 

 

3. 查看任务状态

 

- 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 )。

 

2. 日志存储

 

- 确保HDFS路径可写,否则任务可能失败。

 

3. 版本兼容性

 

- Spark与Hadoop版本需兼容(如Spark 3.5.x对应Hadoop 3.2+)。

 

4. 高可用性

 

- 若Yarn启用HA,需在 spark-defaults.conf 中配置 spark.yarn.resourceManager.address 为HA地址。

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐