一、问题描述:Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

二、解决方法

1)在Hadoop安装目录下找到mapred-site.xml文件($HADOOP_HOME/etc/hadoop/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>

如图:

最后运行成功

2)如果上述方法不行,采用下面方式

执行下面命令

hadoop classpath

拿到运行的类的路径,如下图:

在Hadoop安装目录下找到yarn-site.xml文件($HADOOP_HOME/etc/hadoop/yarn-site.xml),把刚才得到的信息配置进去,如下:

<configuration>
  <property>
    <name>yarn.application.classpath</name>
    <value>复制的Hadoop classpath信息</value>
  </property>
</configuration>

在所有的Master和Slave节点进行如上设置,设置完毕后重启Hadoop集群,重新运行刚才的MapReduce程序,成功运行。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐