環(huán)境描述
系統(tǒng):centos7.5
hadoop version: 3.1.3
問(wèn)題描述:
運(yùn)行
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
報(bào)錯(cuò)
報(bào)錯(cuò)信息: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>
解決方案
- 打開(kāi)配置文件
etc/hadoop/mapred-site.xml
图贸,添加配置
- 依次運(yùn)行命令
export HADOOP_CLASSPATH=$(hadoop classpath)
echo $HADOOP_CLASSPATH
- 將輸出內(nèi)容以如下方式配置在
etc/hadoop/mapred-site.xml
中芜壁。
<property>
<name>mapreduce.application.classpath</name>
<!-- 將輸出內(nèi)容放在value中-->
<value>用輸出內(nèi)容替換此處</value>
</property>
全部配完后
<configuration>
<!-- 指定 MapReduce 程序運(yùn)行在 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>
- 重新運(yùn)行Hadoop命令即可成功。