VMware虚拟机中Hadoop服务的端口无法访问的问题

今天安装了一个hadoop集群,因为已经在单个虚拟机上安装成功,所以初期安装相对顺利。

初始环境如下:

      通过Vmware Esxi服务器虚拟机出来四台机器,每台机器的网络配置如下:

       master:10.10.50.241

       node1:10.10.50.242

       node2:10.10.50.243

       node3:10.10.50.244

 

本机笔记本电脑:10.10.50.239(模拟远端访问控制)。

 

问题描述:

Hadoop启动之后,发现遇到一个奇怪的问题:

1.主机中配置好的hadoop启动之后,在namenode所在的虚拟机中,通过浏览器访问:http://127.0.0.1:8088 或者http://master:8088 能够访问控制台。通过http://10.10.50.241:8088访问控制台,显示不能连接。

2.在笔记本上连接:http://10.10.50.241:8088,显示不能连接。

3.通过查找日志:发现datanode的日志中提示:访问10.10.50.241:8020不能访问.

 

排查步骤:

  1.首先,各个虚拟机和客户端之前都能ping通,虚拟机都能上外网,说明网络没有问题。

  2.各个虚拟机自己的防火墙已经关闭。

  3.通过笔记本telnet远端机器:发现 telnet 10.10.50.241 22可以,telnet 10.10.50.241 8088不行。怀疑是不是需要关闭Vmware Esxi的防火墙呢?

查找在Esxi中关闭防火墙的方法:

运行:#esxcli network firewall set –enabled false

参考:

 http://2790010.blog.51cto.com/2780010/1154143

执行完成之后,重启Esxi,发现不起作用。

3.那是不是端口有问题,通过命令#netstat –tpnl

image

发现监听都配置在:127.0.0.1 结合可以通过可以通过:127.0.0.1:8088可以访问考虑,是不是这个地址改成10.10.50.241就可以了?

因为所有hadoop内部配置的都是hostname,所以有两种方法:

1.将hadoop中所有的hostname改成IP的方式。

2.修改linux的设置,将hostname映射地址改为:10.10.50.241

研究第二种方式,排查发现:hostname –i 命令显示的IP为:

#hostname –i

127.0.0.1 10.10.50.241

所以,在master中,实验将/etc/hosts中的127.0.0.1 master去掉,运行发现:

image

发现部分端口已经改正,还有部分端口没有改正过来。

将各个数据节点中/etc/hosts中的127.0.0.1 node[x]去掉,重新启动hadoop发现:

image

此时:通过在笔记本上访问:http://10.10.50.241:8088已经可以,问题解决。

 

 

另外一个问题:

  通过访问:http://10.10.50.241:50070/dfshealth.jsp 中选择Browse the filesystem选项时发现找不到页面,观察URL,http://node3:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/&nnaddr=10.10.50.241:8020

 

因此:在笔记本上的hosts目录中添加hadoop集群的相关host配置,问题解决。



作者:sdjnzqr
出处:http://www.cnblogs.com/sdjnzqr/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
posted @ 2014-07-24 14:02  正正杂说  阅读(4020)  评论(1编辑  收藏  举报