寫在前面:
? ? ? ? 這個問題雖然折磨了我兩天,但是原因特別蠢,可能與各位不一定一樣,我是因為ResourceManager的節點的"/etc/hadoop/workers"文件沒有配置好(沒有配hadoop102和hadoop104),但排查過程可以作參考。
背景:
? ? ? 我是跟著b站的尚硅谷hadoop3.X視頻做的,部署了hadoop102,hadoop103,hadoop104后,按照集群部署規劃,應該是:
hadoop102 | hadoop103 | hadoop104 | |
HDFS | NameNode DataNode | DateNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
問題:
配置了 /etc/hadoop 下的core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml文件后,在hadoop102節點上先格式化NameNode,然后啟動HDFS,jps查看也是正常的,然后在hadoop103(配置了ResourceManager的節點)啟動YARN,無報錯信息,jps查看,nodemanager在hadoop103正常啟動,但是hadoop102和hadoop104都沒有nodemanager
排查:
1. 百度yarn部分節點沒有nodemanager,發現問題大概率是yarn-site.xml配置文件沒有配好,Hadoop集群搭建部分結點沒有出現NodeManager問題解決方法https://blog.csdn.net/weixin_45960843/article/details/119780208,比如內存溢出、cpu核數默認是8,需要自己配置成1或者2,按照文章內容配置之后,未能解決。也有說是需要給節點設置免密的,我之前也已經設置,未能解決。
2. 在嘗試了很多方法之后,轉換思路,需要根據自己報錯信息來排查,問題就變成了查看yarn 的運行日志了,然而我沒有找到這個路徑,不過這是提供了web端的:在瀏覽器中輸入http://hadoop103:8088,可以查看在Tools下面看local logs,去看hadoop103的nodemanager日志,發現竟然是沒有error的,也就是說是正常的,至此,我幾乎沒有別的辦法了,不管如何修改配置文件,其他節點就是沒有nodemanager。
3.靈光一閃下,想到了workers,因為我的hdfs啟動是正常的,也就是hadoop102可以正常交互hadoop103和hadoop104,但是hadoop103只能管到自己,去看了一下103的workers文件,果然問題出在這里。將102的workers分發到103和104,更一下緩存,source /etc/profile,重啟集群,(記得先關掉yarn和hdfs,刪掉每個節點下的data/和logs/,再格式化102->如果data里有重要數據,不要這么搞)問題終于得到解決。
思考:
出問題,應該先去看日志的報錯信息,再根據報錯去排查對應的問題,而不是直接百度,效率太低。