下载 App
如何搭建spark yarn 模式的集群集群。
搭建Spark on YARN集群的详细步骤
Spark on YARN模式允许Spark作业在Hadoop YARN资源管理器上运行,利用YARN进行资源调度。以下是搭建步骤:
一、前提条件
已安装并配置好的Hadoop集群(包括HDFS和YARN)
所有节点已配置SSH免密登录
Java环境已安装(建议JDK 8或11)
二、安装Spark
1. https://downloads.apache.org/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz
tar -xzvf spark-3.3.2-bin-hadoop3.tgz
mv spark-3.3.2-bin-hadoop3 /opt/spark
2. 配置环境变量
在所有节点上编辑~/.bashrc或/etc/profile。
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
然后执行:
source ~/.bashrc
三、配置Spark on YARN
1. 配置spark-env.sh
cd $SPARK_HOME/conf
cp spark-env.sh.template spark-env.sh
编辑spark-env.sh,添加:
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_EXECUTOR_MEMORY=2g
export SPARK_DRIVER_MEMORY=1g
export SPARK_YARN_QUEUE=default
2. 配置spark-defaults.conf
cp spark-defaults.conf.template spark-defaults.conf
编辑spark-defaults.conf,添加:
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://namenode:8020/spark-logs
spark.history.fs.logDirectory hdfs://namenode:8020/spark-logs
spark.yarn.jars hdfs://namenode:8020/spark-jars/*
3. 上传Spark依赖到HDFS
hdfs dfs -mkdir /spark-jars
hdfs dfs -put $SPARK_HOME/jars/* /spark-jars/
四、启动服务
首先启动Hadoop集群:
start-dfs.sh
start-yarn.sh
启动Spark历史服务器(可选):
$SPARK_HOME/sbin/start-history-server.sh
五、验证安装
提交一个测试作业:
spark-submit --class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.3.2.jar 10
六、关键配置说明
部署模式:
client模式:Driver运行在提交作业的客户端
cluster模式:Driver运行在YARN集群中
资源分配:
bash
spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 4 \
--executor-memory 2g \
--executor-cores 2 \
your-application.jar
动态资源分配(在spark-defaults.conf中配置):
properties
spark.dynamicAllocation.enabled=true
spark.dynamicAllocation.minExecutors=1
spark.dynamicAllocation.maxExecutors=10
spark.dynamicAllocation.initialExecutors=2
七、常见问题解决
Classpath问题:确保HADOOP_CONF_DIR和YARN_CONF_DIR正确指向Hadoop配置目录
权限问题:检查HDFS目录权限和YARN队列权限
资源不足:调整spark.executor.memory和spark.executor.cores参数