错误信息
启动Hadoop任务,报错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.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>
解决步骤
- 编辑
${HADOOP_HOME}/etc/hadoop/mapred-site.xml,添加如下项
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value></value>
</property>
把其中的$HADOOP_MAPRED_HOME换成自己的hadoop安装路径。
- 执行如下命令:
export HADOOP_CLASSPATH=$(hadoop classpath)
echo $HADOOP_CLASSPATH
把输出结果贴到classpath里面。
- 同步mapred-site.xml到从节点上(如果有的话)
# 拷贝到 worker1
scp /usr/local/hadoop/etc/hadoop/mapred-site.xml hadoop@worker1:/usr/local/hadoop/etc/hadoop/
# 拷贝到 worker2
scp /usr/local/hadoop/etc/hadoop/mapred-site.xml hadoop@worker2:/usr/local/hadoop/etc/hadoop/
- 重启yarn
stop-yarn.sh
start-yarn.sh


5267

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



