yarn的web界面查看log時出現的問題


java.lang.Exception: Unknown container. Container either has not started or has already completed or doesn't belong to this node at all.

 

 

參考:https://blog.csdn.net/lisongjia123/article/details/78639058  但是這篇文章跟官網有一定的出入,我做了一定修正

解決方法

官方文檔顯示yarn的日志監控功能默認是處於關閉狀態的,需要我們進行開啟,開啟步驟如下:

 

1.在yarn-site.xml文件中添加日志監控支持

<property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

</property>

yarn.log-aggregation-enable官網中的默認值為false

2在mapred-site.xml文件中添加日志服務的配置

 

<property>
<!-- 表示提交到hadoop中的任務采用yarn來運行,要是已經有該配置則無需重復配置 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--日志監控服務的地址,一般填寫為nodenode機器地址 -->
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>

mapreduce.framework.name官網默認值是local

 要讓他在yarn上跑就把local改為yarn

 

mapreduce.jobhistory.webapp.address 和mapreduce.jobhistory.address值分別為默認0.0.0.0:19888  和0.0.0.0:10020

 

3.將修改后的配置文件拷貝到集群中的其他機器(單機版hadoop可以跳過該步驟)

快捷一點可以使用 scp 命令將配置文件拷貝覆蓋到其他機器

scp yarn-site.xml skyler@slave1:/hadoopdir/etc/hadoop/
scp mapred-site.xml skyler@slave1:/hadoopdir/etc/hadoop/
…其他datanode機器同理
四、重新啟動集群的Hdfs和Yarn服務

在namenode機器上分別對hdfs和yarn服務進行重啟

bin/stop-dfs.sh
bin/start-dfs.sh
bin/stop-yarn.sh
bin/start-yarn.sh


五、 開啟日志監控服務進程

在nodenode機器上執行 sbin/mr-jobhistory-daemon.sh start historyserver 命令,執行完成后使用jps命令查看是否啟動成功,若啟動成功則會顯示出JobHistoryServer服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM