You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark 2.3.0以YARN为Master运行时找不到ApplicationMaster主类报错求助

解决Spark YARN Cluster模式下Could not find or load main class org.apache.spark.deploy.yarn.ApplicationMaster问题

从你的描述来看,Spark在local模式运行正常,但切换到YARN cluster模式时出现主类找不到的错误,这通常是YARN节点无法正确获取Spark依赖类路径导致的。结合你的Spark 2.3.0 + Hadoop 2.7.5环境,我给你整理了几个针对性的排查和解决步骤:

1. 确认Spark安装包的依赖完整性

首先要确保你下载的Spark是适配Hadoop 2.7的预编译版本(比如spark-2.3.0-bin-hadoop2.7.tgz),而不是源码包或通用版本。如果是手动编译的Spark,要确认编译时指定了正确的Hadoop版本参数:

./build/mvn -Pyarn -Phadoop-2.7 -DskipTests clean package

同时检查$SPARK_HOME/yarn目录下是否存在spark-2.3.0-yarn-shuffle.jar这类YARN核心依赖包,从你的日志看已经在上传这个文件,但如果文件损坏或者权限不足也会出问题。

2. 配置Spark YARN全局类路径

修改$SPARK_HOME/conf/spark-defaults.conf,添加以下配置,让YARN从HDFS加载Spark的所有依赖jar包:

spark.yarn.jars=hdfs://localhost:9000/spark-jars/*

操作步骤:

  • 先把$SPARK_HOME/jars下的所有jar包上传到HDFS的指定目录:
    hdfs dfs -mkdir -p /spark-jars
    hdfs dfs -put $SPARK_HOME/jars/* /spark-jars/
    
    这样所有NodeManager节点都能从HDFS统一获取依赖,避免本地路径不一致的问题。

3. 检查NodeManager节点的环境变量

在cluster模式下,ApplicationMaster是在NodeManager节点上启动的,所以必须确保所有NodeManager节点都正确配置了以下环境变量:

  • SPARK_HOME:指向你的Spark安装目录
  • HADOOP_CONF_DIR:指向Hadoop的配置目录(比如/opt/hadoop-2.7.5/etc/hadoop)
    你可以登录到NodeManager节点,执行以下命令验证:
echo $SPARK_HOME
echo $HADOOP_CONF_DIR

如果这些变量未配置,需要修改NodeManager的启动脚本(比如$HADOOP_HOME/etc/hadoop/yarn-env.sh),添加环境变量配置。

4. 排查HDFS资源上传问题

从你的控制台日志中看到了DFSClient: Caught exception java.lang.InterruptedException的警告,这可能意味着Spark的配置包或依赖jar包没有完整上传到HDFS的staging目录。你可以手动检查HDFS路径:

hdfs dfs -ls /user/root/.sparkStaging/application_1526143826498_0001/

确认__spark_conf__.zip、spark-2.3.0-yarn-shuffle.jar和你的应用jar包是否存在且大小正常。如果文件缺失,检查HDFS的磁盘空间和用户权限,确保root用户对该目录有读写权限。

5. 快速验证:切换到Client模式测试

尝试用client模式提交任务,看看是否能正常运行:

spark-submit --class com.spark.SparkTest --master yarn --deploy-mode client /root/Downloads/SimpleSpark-0.0.1-SNAPSHOT.jar

如果client模式正常,说明问题确实出在cluster模式下NodeManager的环境或类路径配置上,再针对性排查NodeManager的配置即可。

内容的提问来源于stack exchange,提问作者aiman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:35:33