Could not find or load main class org.apache.hadoop.mapred.YarnChild问题

我的Hadoop 版本是 3.3.6的, 在yarn-site.xml中加入以下配制:

<property>
<name>yarn.application.classpath</name>
<value>
/software/hadoop-3.3.6/etc/hadoop,
/software/hadoop-3.3.6/share/hadoop/common/*,
/software/hadoop-3.3.6/share/hadoop/common/lib/*,
/software/hadoop-3.3.6/share/hadoop/hdfs/*,
/software/hadoop-3.3.6/share/hadoop/hdfs/lib/*,
/software/hadoop-3.3.6/share/hadoop/mapreduce/*,
/software/hadoop-3.3.6/share/hadoop/mapreduce/lib/*,
/software/hadoop-3.3.6/share/hadoop/yarn/*,
/software/hadoop-3.3.6/share/hadoop/yarn/lib/*
</value>
</property>

Hadoop 集群运行 MapReduce 任务时,遇到错误 `Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster`,通常与类路径(classpath)配置或环境变量设置有关。 此类错误表明 YARN 容器无法找到或加载 `MRAppMaster` 类,这通常是由于以下原因之一: 1. **类路径未正确配置**:YARN 容器启动时需要访问 HadoopMapReduce 库文件(JAR),如果 `mapred-site.xml` 中未正确配置 `yarn.application.classpath`,则无法找到所需的类文件 [^3]。 可以在 `mapred-site.xml` 中添加以下配置项: ```xml <property> <name>yarn.application.classpath</name> <value> /opt/module/hadoop-3.1.3/etc/hadoop: /opt/module/hadoop-3.1.3/share/hadoop/common/lib/*: /opt/module/hadoop-3.1.3/share/hadoop/common/*: /opt/module/hadoop-3.1.3/share/hadoop/hdfs: /opt/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*: /opt/module/hadoop-3.1.3/share/hadoop/hdfs/*: /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*: /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/*: /opt/module/hadoop-3.1.3/share/hadoop/yarn: /opt/module/hadoop-3.1.3/share/hadoop/yarn/lib/*: /opt/module/hadoop-3.1.3/share/hadoop/yarn/* </value> </property> ``` 2. **环境变量未正确传递**:Hadoop 3.1.x 存在一个已知问题,即未将 `HADOOP_MAPRED_HOME` 包含在容器的环境变量白名单中。在 `yarn-site.xml` 中,确保以下配置包含 `HADOOP_MAPRED_HOME`: ```xml <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,HADOOP_MAPRED_HOME,PATH,LANG,TZ</value> </property> ``` 此问题Hadoop 3.2 及以上版本中已修复 [^4]。 3. **路径错误或 JAR 文件缺失**:确保 Hadoop 安装路径下的 `mapreduce` 目录中存在 `hadoop-mapreduce-client-app-*.jar` 等相关 JAR 文件,并且路径配置无误 [^3]。 4. **检查日志定位具体问题**:可以通过访问 YARN 的 Application Tracking 页面,查看任务失败的详细日志信息,通常在 `prelaunch.err` 文件中会记录具体的错误原因 [^2]。 示例跟踪页面链接格式: ``` http://<yarn-tracking-host>:8088/cluster/app/<application-id> ``` 通过以上步骤,通常可以解决 `MRAppMaster` 类找不到的问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值