首先,本文的适用条件是:
Hadoop集群以前可以正常启动,而突然在某一天面临无法启动部分组件的问题。
要意识到,如果Hadoop集群之前一直可以正常使用,突然有一天无法正常启动,那问题出现的地方大概率并非Hadoop文件的配置问题,而是近期的某个操作影响到了Hadoop集群启动这个过程。
对于楼主来说,楼主最近在用Maxwell和DataX采集完数据库数据后发现Hadoop启动每次都会有一到两个组件启动不了(例如JobHistory或者NameNode),并且启动速度明显变慢。查看日志也发现有不少连接失败的记录。
这种情况下,很有可能是服务器或者虚拟机的内存不足/内存溢出,而内存不足会直接导致Hadoop集群启动失败或者无法再写入文件。
最直接且最快速的解决方案是给每个服务器或者虚拟机扩充内存,楼主最开始每台阿里云服务器为4G内存,扩充到8G后完美解决这个问题,并且Hadoop集群启动速度明显增快。其它的解决方案可以参考其它CSDN的帖子,例如修改内存配置文件等。