前言:namenode, datanode, resourcemanager, nodemanager全部正常启动,但是无法打开web页面:http:// 虚拟机IP :8088/cluster。
这个问题的解决,有两个思考方向:
1.本机与虚拟机网络连接问题:查看本机与虚拟机能否ping通,如果不通那就是虚拟机无法与外界通讯,常见的是虚拟机防火墙未关闭的原因。(如果是没有设置过虚拟机网络的,得去搜配置教程。。这个应该是在配置yarn之前早就解决的问题啦)
<我的50070端口的web页面可以正常打开,所以排除本机与虚拟机无法通讯的问题>
2.8088端口IP设置问题,只能被本机访问:这个应该是常见情况。
#netstat -nltp 查看端口状态
[root@localhost hadoop-2.7.2]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 2817/java
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1086/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1381/master
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 2917/java
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 2738/sshd: root@pts
tcp 0 0 0.0.0.0:50075 0.0.0.0:* LISTEN 2917/java
tcp 0 0 0.0.0.0:50020 0.0.0.0:* LISTEN 2917/java
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp6 0 0 127.0.0.1:8088 :::* LISTEN 3047/java
可以发现我的8088端口的local address是:127.0.0.1:8088,这就导致了8088端口只能被本机访问。
(而不是像50070端口:0.0.0.0.0:50070 ,它能被外网访问)
所以,要能够被外网访问,需要让8088端口挂在外界可以访问到的虚拟机ip下面。
所以来改yarn-site.xml的hostname:
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>我的虚拟机IP</value>
</property>
我直接把这里改成了我的虚拟机ip,成功打开了页面!

PPPPPS:也可以把这里的里面写你自己的域名。这需要修改/etc/hosts,在后面加上你自己定义的域名解析。
(在/etc/hosts中,默认的内容下面,加一行【IP地址 域名】)
本文详细介绍了在Hadoop集群中遇到的YARN ResourceManager Web界面无法从外部访问的问题及解决方案。通过调整yarn-site.xml文件中的yarn.resourcemanager.hostname属性,将地址设置为虚拟机IP,成功解决了8088端口仅限本地访问的问题。
6118





