局域网上的Web应用程序:curl -L适用于其他虚拟机,主机上的浏览器/卷曲不可用

时间:2016-06-25 22:12:25

标签: hadoop curl networking port yarn

我正在我的局域网上设置Hadoop虚拟机集群,其中一个虚拟机(ResourceManager)上的进程提供了一个表现出奇怪行为的Web UI。所有虚拟机都从我的桌面运行,并已分配到ips。

我定位的网址是resourcemanager:8088,这是行为。

从桌面上运行的其他虚拟机:

curl -v resourcemanager:8088

使用HTTP 302 Found返回Location: http://resourcemanager:8088/cluster响应。仔细查看,我看到这是一个重定向,curl -L resourcemanager:8088 成功检索HTML

从运行vms的桌面:

尝试从(Chrome)浏览器访问该网址时会显示net::ERR_CONNECTION_REFUSED。还

curl resourcemanager:8088

返回curl: (7) Failed to connect to resourcemanager port 8088: Connection refused

每个虚拟机都有相同的 / etc / hosts

::1       localhost
127.0.0.1 localhost
10.0.0.3  namenode
10.0.0.4  resourcemanager
10.0.0.5  datanode1

和我(Windows)桌面上的.../drivers/etc/hosts文件看起来相同,减去localhost行。

为了使问题更复杂,第二个进程(NameNode)还提供了一个web ui,称之为namenode:50070,我能够curl桌面 vms,我可以从桌面通过浏览器访问它。

有什么想法吗?

修改

规格:

桌面操作系统:Windows 10

VMs OS:Arch Linux latest(Linux内核4.5.4)

使用Hyper-V创建初始Arch + hadoop VM,然后cloned创建上面列出的三个“群集”vms。克隆后,每个vm都被赋予一个唯一的主机名(如上所列),并从我的路由器(也在上面列出)中分配了一个保留的IP地址。所有VM都使用"external vm switch"

1 个答案:

答案 0 :(得分:1)

我无法发表评论,因为我还没有50个声誉,但这可能与端口8088后面的服务配置有关:VM可能从虚拟dhcp服务器获得了一个“小”网络掩码,大概可以覆盖所有其他VM的IP范围,不包括主机。如果发生这种情况并且服务配置与许多其他服务一样 - 在所有接口上监听 - 它将不会对请求作出反应,并且您的连接将到达关闭的端口,从而导致“连接被拒绝”错误。那怎么样?