我正在我的LAN上设置虚拟机的Hadoop集群,并且其中一个vms(ResourceManager)上的一个进程提供了一个表现出奇怪行为的Web UI。所有虚拟机均从我的桌面运行,并已分配IP。
我定位的URL是resourcemanager:8088
,这是行为。
从桌面上运行的其他虚拟机:
curl -v resourcemanager:8088
返回带有
HTTP 302 Found
的Location: 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,并且您的连接将到达关闭的端口,从而导致“连接被拒绝”错误。那个怎么样?