写在前面:
这个问题虽然折磨了我两天,但是原因特别蠢,可能与各位不一定一样,我是因为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里有重要数据,不要这么搞)问题终于得到解决。
思考:
出问题,应该先去看日志的报错信息,再根据报错去排查对应的问题,而不是直接百度,效率太低。