【Hadoop】YARN ResourceManager 启动后 8088 端口无法访问问题排查与解决(伪分布式启动Hadoop)
在配置和启动 Hadoop YARN 模块时,发现虽然 ResourceManager 正常启动,JPS 进程中也显示无误,但通过浏览器访问 http://主机IP:8088
时却无法打开 YARN 的 Web UI 页面。本文记录了详细的排查过程与解决方案。
🧩 问题表现
Hadoop 启动正常,JPS 显示:
yaml
[hadoop@localhost module]$ jps
2256 NodeManager
2146 ResourceManager
2627 Jps
1915 SecondaryNameNode
1596 NameNode
1710 DataNode
使用 netstat
查看监听端口:
ruby
[hadoop@localhost module]$ netstat -tnlp | grep :8088
tcp 0 0 127.0.0.1:8088 0.0.0.0:* LISTEN 2146/java
发现 8088 只绑定在 127.0.0.1
,无法从外部访问。
📄 配置文件内容
配置文件为 ${HADOOP_HOME}/etc/hadoop/yarn-site.xml
,内容如下:
xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
🛠️ 原因分析
默认配置将 ResourceManager 的监听地址绑定在 localhost
(即 127.0.0.1),这意味着只有本机可以访问 8088
端口,其他设备访问时会出现连接超时或拒绝连接的问题。
✅ 解决方法
1️⃣ 修改 ResourceManager 主机名
将 localhost
修改为机器的实际 IP 地址,例如 192.168.0.110
:
xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.0.110</value>
</property>
2️⃣ 添加 Web UI 绑定地址
让 ResourceManager 的 Web 页面监听所有 IP:
xml
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>0.0.0.0:8088</value>
</property>
📌 最终配置如下:
xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.0.110</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>0.0.0.0:8088</value>
</property>
</configuration>
3️⃣ 重启 YARN 服务
arduino
stop-yarn.sh
start-yarn.sh
检查监听:
perl
netstat -tnlp | grep 8088
确认输出:
bash
tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN xxxx/java
4️⃣ 放通防火墙端口(如有)
css
sudo firewall-cmd --add-port=8088/tcp --permanent
sudo firewall-cmd --reload
5️⃣ 访问测试
在浏览器中访问:
arduino
http://192.168.0.110:8088
即可正常打开 ResourceManager 的 Web UI 页面。
🔚 总结
遇到 YARN 8088 端口无法访问的问题,通常是由于默认监听在 localhost
导致的。通过修改 yarn-site.xml
配置绑定实际 IP,并设置 Web UI 监听 0.0.0.0
,即可顺利解决该问题。

