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