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

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

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

curl -v resourcemanager:8088

返回带有HTTP 302 FoundLocation: http://resourcemanager:8088/cluster响应。进行查找,我看到这是重定向,并且curl -L resourcemanager:8088成功检索了HTML。

在运行虚拟机的桌面上:

尝试从(Chrome)浏览器访问URL会得到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,我能够从桌面和vms对其进行curl,并且可以从桌面通过浏览器访问它。

有任何想法吗?

编辑

眼镜:

桌面操作系统:Windows 10

VM OS:Arch Linux最新版(Linux内核4.5.4)

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

最佳答案

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

09-06 01:20