Hadoop集群动态添加节点后节点数量未增加且节点名称不稳定的解决方案

时间:2024-04-14 13:47:06

  • 问题现象

当前有01、02、03三个节点的hadoop集群,其中01是master节点,02、03为slave节点。当动态添加04的slave节点后,hadoop的web界面中显示的节点数目未增加。进一步观察,节点列表中的slave节点内容,时而是02、04节点,时而是02、03节点,非常诡异。

 Hadoop集群动态添加节点后节点数量未增加且节点名称不稳定的解决方案

Hadoop集群动态添加节点后节点数量未增加且节点名称不稳定的解决方案

  •  分析原因

找到datadir目录下的current/VERSION文件,03和04服务器中的datanodeUuid数值完全一致,可推断,master节点把03和04当做同一台服务器来处理了。原因是,之前03服务器已经启动过,生成的VERSION中已经记录了datanodeUuid,克隆虚拟机的时候,所有信息都保留和03服务器一样。

 Hadoop集群动态添加节点后节点数量未增加且节点名称不稳定的解决方案

  • 解决方案

考虑到如果不是克隆而是直接安装的情况下,04服务器的datadir和tmpdir目录下是空白的,因此,将04服务器的DataNode、NodeManager服务停止,删除datadir和tmpdir目录下的所有文件,重新启动DataNode、NodeManager服务,再次观察,hadoop集群中的内容显示了02、03、04三个datanode,与预期一致,问题解决。

Hadoop集群动态添加节点后节点数量未增加且节点名称不稳定的解决方案

  • 注意事项

通过拷贝或者克隆虚拟机的方式新增节点时,需要做如下几项操作:

1、修改主机名、IP地址,重启新增的节点,并将/etc/hosts文件拷贝到集群中的其他节点中(若使用本地DNS服务器,此步骤可省略,只需要在DNS服务器中将改节点添加到域名解析记录中即可);

2、新增的节点需要重新运行ssh-****** -t rsa生成公钥,并将公钥添加到authorized_keys文件中,并拷贝到集群中的其他节点中。

参考资料:

1、Hadoop datanode正常启动,但是Live nodes中却缺少节点的问题

https://blog.****.net/wk51920/article/details/51729460

2、hadoop2.7 动态新增节点和删除节点

https://blog.****.net/Mark_LQ/article/details/53393081