昨天在配置完mapreduce和yarn之后,想着用集群运行一个demo,就是官方的wordcount,结果我发现没办法运行,报了错,我就去查看日志,datanode日志是好的,我就去查看resourcemanager的log,结果发现报了以下错误,我仔细看了以下大概意思是我的mapred-site.xml文件中少了一些参数,导致无法运行。
然后我就一五一十地把参数都补了进去,在重启hdfs,发现还是报错,但是没有说缺少啥参数了,我再仔细一看还有个错误,但我不会,就是标题地这个错误和我上面这个错误还不一样,标题地错误是Container exited with a non-zero exit code 1。
[2022-03-07 16:22:22.775]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>
我就上csdn查资料,我发现了以下链接:
终其原因还是配置的问题,在hadoop3.0需要加上ResourceManager的webapp地址参数配置,yarn.resourcemanager.webapp.address.rm1, yarn.resourcemanager.scheduler.address.rm2。
我居然粗心到打了两个.难怪运行不起来了,我立马把文件修改了然后利用deploy.sh分发到了各个节点上。
终于可以运行了。
更多推荐