报错内容:
Failed while trying to construct the redirect url to the log server.Log Server url may not be configured java.lang.Exception:Unknown container.Container either has not started or has already completed or doesn't belong to this node at all.
借用一下网上的图:
这个原因就是配置文件少配置了一些东西:
mapred-site.xml
在mapred-site.xml中要添加:
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
<description>MapReduce jobhistory服务器的进程间通信地址</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
<description>MapReduce jobhistory服务器的用户界面地址</description>
</property>
yarn-site.xml
在yarn-site.xml中添加:
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>启用日志聚合,默认值为False,即禁用</description>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
<description>日志保留时间设置为一天</description>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>${yarn.log.dir}/userlogs</value>
<description>应用程序的本地化的日志目录</description>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs</value>
</property>
然后重启hadoop,还要重启JobHistoryServer
停止:
./mr-jobhistory-daemon.sh stop historyserver
启动:
./mr-jobhistory-daemon.sh starthistoryserver