异常问题:
今天运行word count单词统计示例,hadoop运行mapreduce报错Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
详细错误信息如下:
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMasterPlease 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>
先手hadoop classpath命令得到classpath:
hadoop classpath
如下:
[root@hd1 mapreduce]# hadoop classpath/home/hadoop-3.1.4/etc/hadoop:/home/hadoop-3.1.4/share/hadoop/common/lib/*:/home/hadoop-3.1.4/share/hadoop/common/*:/home/hadoop-3.1.4/share/hadoop/hdfs:/home/hadoop-3.1.4/share/hadoop/hdfs/lib/*:/home/hadoop-3.1.4/share/hadoop/hdfs/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/lib/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/*:/home/hadoop-3.1.4/share/hadoop/yarn:/home/hadoop-3.1.4/share/hadoop/yarn/lib/*:/home/hadoop-3.1.4/share/hadoop/yarn/*
再修改mapred-site.xml配置,增加如下:
<property><name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/home/hadoop-3.1.4/etc/hadoop:/home/hadoop-3.1.4/share/hadoop/common/lib/*:/home/hadoop-3.1.4/share/hadoop/common/*:/home/hadoop-3.1.4/share/hadoop/hdfs:/home/hadoop-3.1.4/share/hadoop/hdfs/lib/*:/home/hadoop-3.1.4/share/hadoop/hdfs/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/lib/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/*:/home/hadoop-3.1.4/share/hadoop/yarn:/home/hadoop-3.1.4/share/hadoop/yarn/lib/*:/home/hadoop-3.1.4/share/hadoop/yarn/*</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/home/hadoop-3.1.4/etc/hadoop:/home/hadoop-3.1.4/share/hadoop/common/lib/*:/home/hadoop-3.1.4/share/hadoop/common/*:/home/hadoop-3.1.4/share/hadoop/hdfs:/home/hadoop-3.1.4/share/hadoop/hdfs/lib/*:/home/hadoop-3.1.4/share/hadoop/hdfs/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/lib/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/*:/home/hadoop-3.1.4/share/hadoop/yarn:/home/hadoop-3.1.4/share/hadoop/yarn/lib/*:/home/hadoop-3.1.4/share/hadoop/yarn/*</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/home/hadoop-3.1.4/etc/hadoop:/home/hadoop-3.1.4/share/hadoop/common/lib/*:/home/hadoop-3.1.4/share/hadoop/common/*:/home/hadoop-3.1.4/share/hadoop/hdfs:/home/hadoop-3.1.4/share/hadoop/hdfs/lib/*:/home/hadoop-3.1.4/share/hadoop/hdfs/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/lib/*:/home/hadoop-3.1.4/share/hadoop/mapreduce/*:/home/hadoop-3.1.4/share/hadoop/yarn:/home/hadoop-3.1.4/share/hadoop/yarn/lib/*:/home/hadoop-3.1.4/share/hadoop/yarn/*</value></property>
注意:上面的配置的value都是上面命令得到的值,复制到value中即可

在运行Hadoop的Wordcount示例时遇到Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster。错误信息提示检查mapred-site.xml配置。解决方案是使用`hadoop classpath`命令获取classpath,然后将该路径添加到mapred-site.xml的yarn.app.mapreduce.am.env,mapreduce.map.env和mapreduce.reduce.env的value中。确保配置的value与命令输出的classpath一致。

被折叠的 条评论
为什么被折叠?



