今天安装了一个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

发现监听都配置在: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去掉,运行发现:

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

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

此时:通过在笔记本上访问: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/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

VMware虚拟机中Hadoop服务的端口无法访问的问题的更多相关文章

  1. Hadoop服务的端口50070无法访问的问题

    Hadoop启动之后,遇到一个奇怪的问题: VMware虚拟机中Hadoop服务的端口50070无法访问的问题---通过127.0.0.1:50070.localhost:50070.主机名:5007 ...

  2. 外网访问Vmware虚拟机中的某个服务(如http)

    如果主机是windowx NAT中隐藏的端口映射,说明一下环境,利用当然是VMnet8网络连接,在虚拟机中架设linux WEB服务器利用WEB默认80端口,IP为192.168.11.10,真实主机 ...

  3. VMware虚拟机中如何配置静态IP

    我们首先说一下VMware的几个虚拟设备 VMnet0:用于虚拟桥接网络下的虚拟交换机 VMnet1:用于虚拟Host-Only网络下的虚拟交换机 VMnet8:用于虚拟NAT网络下的虚拟交换机 VM ...

  4. 外网如何访问vmware虚拟机的web服务(转载)

    目的: 主机上安装了VMware,VMware上安装了Linux虚拟机(我安装的是Centos7).我想让虚拟机向外提供Web服务.本文记录如何让我的主机和外网用户可以访问VM虚拟机上的Web. 网络 ...

  5. 【Linux】VMware虚拟机中如何配置静态IP

    此处详解如何在VMware虚拟机中配置静态IP. 上图是一个草图,大致说明下VMware网络情况.网段指某个IP范围,例如一栋小区楼和另一栋小区楼就不是一个网段 如果你在A小区,你女朋友在B小区,你想 ...

  6. VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法

    VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法 在linux上安装nginx 请参考:Linux Centos7 安装 nginx 在虚拟机centos7上安装nginx之 ...

  7. 在VMware虚拟机中配置DOS汇编开发环境!!

    操作系统:win7 32位 DOS环境:DosBox  下载:http://www.dosbox.com/ 选择当前适合自己版本,下载就可以了. 汇编编译器:MASM 5.0 下载:http://do ...

  8. VMware虚拟机中如何安装VMWare-Tools详解

    VMware虚拟机中如何安装VMWare-Tools详解 好处:可以支持图形界面,可以支持共享文件功能等 VMware虚拟机中如何配置显 VMware作为一款虚拟机利器,很多人都利用它来实现Linux ...

  9. 虚拟化技术学习(一)在VMware虚拟机中安装KVM

    近期一直研究虚拟化技术,曾经对VMware虚拟机有一定的了解,近期突发奇想,能不能在VMware虚拟机中再装一个虚拟机呢? 那么问题就来了,首先,你须要一台电脑,vmware软件,(本人的电脑配置渣渣 ...

随机推荐

  1. 北大ACM(POJ1007-DNA Sorting)

    Question:http://poj.org/problem?id=1007 问题点:逆序数及快排. Memory: 248K Time: 0MS Language: C++ Result: Acc ...

  2. C# HttpWebRequest类

    HttpWebRequest类与HttpRequest类的区别. HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息.而HttpWebReque ...

  3. byte[] 清空

    1. using(byte buff = new byte[Size]){  // 你要用的代码,} 2. Array.Clear(bytes, 0 ,bytes.Length);

  4. c# 读取远程主机性能计数器

    PerformanceCounter pc = new PerformanceCounter("Web Service", "Current Connections&qu ...

  5. Template_17_metaprogram

    1,模板实例化机制是一种基本的递归语言机制,可以用于在编译期执行复杂计算.2,枚举值和静态常量在原来的C++编译器中,在类声明的内部,枚举值是声明"真常值"(常量表达式)的唯一方法 ...

  6. windows内存映射学习及帮助类实现

    本文通过创建文件内存映射类,学习windows内存映射相关知识:创建内存映射文件后,可以按照内存操作方式操作文件:支持32位程序处理超过4G大小的文件. 感谢http://blog.csdn.net/ ...

  7. Android studio 读取properties文件

    System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath( ...

  8. 2.servlet 生命周期

    1.建Web project“2Servlet_Basic” 2.建包com.amaker.servlet 3.建类“ServletBasic.java” package com.amaker.ser ...

  9. SecureCRT远程控制ubuntu

    如果你拥有两台电脑一台是ubuntu,另一台是笔记本电脑,而你又想在远程控制你的ubuntu,那么SecureCRT就可以用了. 1:首先在你的ubuntu电脑上安装SSH服务  :apt-get i ...

  10. AJAX 跨域 :Access-Control-Allow-Origin

    在一个项目上想用NodeJS,在前端的JS(http://localhost/xxx)中ajax访问后端RestAPI(http://localhost:3000/….)时(Chrome)报错: XM ...