Hadoop启动之后,遇到一个奇怪的问题:
VMware虚拟机中Hadoop服务的端口50070无法访问的问题---通过127.0.0.1:50070、localhost:50070、主机名:50070均可访问,唯独IP:50070不能访问到。
通过查找日志:发现datanode的日志中提示:访问MasterNameNode:8020不能访问。
排查步骤:
1.首先,各个虚拟机和客户端之间都能ping通,虚拟机都能上外网,说明网络没有问题。
2.各个虚拟机自己的防火墙已经关闭。
3.是不是端口有问题呢?通过命令#netstat -tnpl
发现监听都配置在:127.0.0.1,结合可以通过127.0.0.1:50070能够访问考虑,是不是把这个地址改成真实的IP就可以了?
因为所有hadoop内部配置的都是hostname,所以有两种方法:
1.将hadoop中所有的hostname改成IP的方式。
2.修改Linux的设置,将hostname映射地址改为真实的IP。
研究第二种方式,排查发现:hostname -i命令显示的IP为:127.0.0.1 真实IP
所以,在Master中,实验将/etc/hosts中的127.0.0.1一行注释掉,运行发现部分端口已经改正,还有部分端口没有改正过来。
将各个数据节点中/etc/hosts中的127.0.0.1行去掉,重新启动hadoop发现:
通过http://真实IP:50070已经可以进行访问,问题解决。