解决办法,修改虚拟机的ip映射,修改/etc/hosts文件。假设有三台服务器,hadoop102、hadoop103、hadoop104。
一、修改hosts文件,公网和私网
先修改hadoop102的hosts文件,hadoop102在做地址映射时,应该使用hadoop102这台机器的公网ip,而其他节点的地址则使用私网ip。ip地址可以在阿里云的云服务器管理控制台查看。
/etc/hosts文件例子如下
修改完hadoop102虚拟机的hosts文件后,接着修改hadoop103和hadoop104虚拟机的hosts。
在hadoop103虚拟机中,hadoop103地址为公网IP,hadoop102和hadoop104为私网地址。hadoop104同理
二、重新初始化HDFS
修改完3台节点的hosts文件后,重启这三台机器,然后把上次初始化NameNode产生的data和log目录进行删除(注意hadoop102、hadoop03、hadoop104上都要将这两个目录进行删除)
删除完后,执行如下命令进行初始化
hdfs namenode -format
然后使用如下命令启动HDFS,在hadoop102节点上运行如下命令
start-dfs.sh
可以看到NameNode成功启动
接着启动Yarn看看,在hadoop103节点上运行如下命令(因为在配置文件中设置了ResourceManage在运行在hadoop103节点上)
start-yarn.sh
Yarn的进程也成功启动