在hadoop 环境下运行MapReduce 下wordCount出现以下错误:
2020-08-10 21:32:29,193 INFO mapreduce.Job: Job job_1597060619065_0003 running in uber mode : false
2020-08-10 21:32:29,195 INFO mapreduce.Job: map 0% reduce 0%
2020-08-10 21:32:29,213 INFO mapreduce.Job: Job job_1597060619065_0003 failed with state FAILED due to: Application application_1597060619065_0003 failed 2 times due to AM Container for appattempt_1597060619065_0003_000002 exited with exitCode: 1
Failing this attempt.Diagnostics: [2020-08-10 21:32:28.461]Exception from container-launch.
Container id: container_1597060619065_0003_02_000001
Exit code: 1
[2020-08-10 21:32:28.465]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 <HADOOP_HOME>/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>
[2020-08-10 21:32:28.465]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 <HADOOP_HOME>/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>
For more detailed output, check the application tracking page: http://iZ2ze71edtq2kxflzq2m01Z:8088/cluster/app/application_1597060619065_0003 Then click on links to logs of each attempt.
. Failing the application.
2020-08-10 21:32:29,239 INFO mapreduce.Job: Counters: 0
根据报错提示,其实很简单的就能找到原因了
在 $HADOOP_HOME/etc/mapred-site.xml文件中,添加一下配置
<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>
然后重新运行就成功了!!!