bug1:Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

环境描述

系统:centos7.5
hadoop version: 3.1.3

问题描述:

运行hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output报错
报错信息:

Application application_1640397452955_0003 failed 2 times >due to AM >Container for >appattempt_1640397452955_0003_000002 exited with exitCode: 1
Failing this attempt.Diagnostics: [2021-12-25 >10:11:58.436]Exception from container-launch.
Container id: container_1640397452955_0003_02_000001
Exit code: 1
[2021-12-25 10:11:58.456]Container exited with a non-zero exit code 1. Error file: >prelaunch.err.
Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :
Error: Could not find or load main class >org.apache.hadoop.mapreduce.v2.app.MRAppMaster
Please check whether your etc/hadoop/mapred-site.xml contains the below >configuration:
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution >directory}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution >directory}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution >directory}</value>
</property>

解决方案

  1. 打开配置文件etc/hadoop/mapred-site.xml,添加配置
    image.png
  2. 依次运行命令

export HADOOP_CLASSPATH=$(hadoop classpath)
echo $HADOOP_CLASSPATH

  1. 将输出内容以如下方式配置在etc/hadoop/mapred-site.xml中。
 <property>
  <name>mapreduce.application.classpath</name>
  <!-- 将输出内容放在value中-->
  <value>用输出内容替换此处</value>
 </property>

全部配完后

<configuration>
 <!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>

 <property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
 </property>
 <property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
 </property>

 <property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
 </property>

 <property>
  <name>mapreduce.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>

</configuration>
  1. 重新运行Hadoop命令即可成功。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容