You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Hadoop 50070端口Web UI无法连接,如何访问该界面?

解决Hadoop Web UI无法访问(localhost:50070连接失败)的问题

首先要敲黑板:最新版Hadoop(3.x及以后)已经把NameNode的Web UI端口从50070改成9870了,这是最常见的踩坑点,先试试访问 http://localhost:9870/,大概率能直接解决。如果还是不行,再按下面的步骤逐一排查:

1. 确认Hadoop版本与对应端口

先在终端执行命令确认你的Hadoop版本:

hadoop version
  • 若版本是3.x+:NameNode UI端口为9870,ResourceManager UI端口保持8088不变;
  • 若版本是2.x:才会使用50070端口,那继续往下排查。

2. 验证Hadoop服务是否正常启动

执行jps命令查看运行的Java进程,正常情况下应该看到这些关键进程:

jps

预期输出应该包含:

  • NameNode
  • DataNode
  • ResourceManager
  • NodeManager
  • SecondaryNameNode(如果启用的话)

如果缺少NameNode:

  • 检查NameNode的启动日志,路径在$HADOOP_HOME/logs/hadoop-*-namenode-你的主机名.log,看是否有配置错误或文件权限问题;
  • 确认你格式化NameNode的步骤正确,格式化命令是hdfs namenode -format,不要重复格式化(会导致DataNode与NameNode的clusterID不一致,DataNode无法启动)。

如果缺少DataNode:

  • 查看DataNode日志$HADOOP_HOME/logs/hadoop-*-datanode-你的主机名.log,如果提示clusterID不匹配,需要删除$HADOOP_HOME/data/datanode目录下的所有文件,然后重新格式化NameNode并重启服务。

3. 检查配置文件的绑定地址

确保Hadoop配置文件没有把服务绑定到非本地地址:

  • 打开$HADOOP_HOME/etc/hadoop/core-site.xml,确认fs.defaultFS设置为hdfs://localhost:9000(或你的主机名),不要绑定到特定的外部IP;
  • 打开$HADOOP_HOME/etc/hadoop/hdfs-site.xml,确认dfs.namenode.http-address的配置是localhost:9870(3.x+)或localhost:50070(2.x):
    <property>
        <name>dfs.namenode.http-address</name>
        <value>localhost:9870</value>
    </property>
    
  • 修改配置后,一定要重启Hadoop服务:sbin/stop-all.sh然后sbin/start-all.sh(注意:3.x版本中start-all.sh已被标记为过时,推荐用start-dfs.shstart-yarn.sh分开启动)。

4. 检查Ubuntu 18.04的防火墙设置

Ubuntu 18.04默认使用ufw防火墙,如果防火墙开启,可能会拦截9870/50070端口:

  • 查看防火墙状态:
    sudo ufw status
    
  • 如果状态是active,允许对应端口的TCP访问:
    # 3.x+版本用9870
    sudo ufw allow 9870/tcp
    # 2.x版本用50070
    sudo ufw allow 50070/tcp
    
  • 或者临时关闭防火墙测试(不推荐长期关闭):
    sudo ufw disable
    

如果关闭防火墙后能访问,说明是防火墙规则的问题,添加上述端口允许规则即可。

5. 排查浏览器代理问题

有时候Firefox的代理设置会导致无法访问本地服务:

  • 打开Firefox,点击右上角菜单 → 设置 → 搜索“代理” → 选择“设置”;
  • 确保选择“无代理”,或者在“不用于代理的地址”列表中添加localhost127.0.0.1

6. 用curl测试本地服务可用性

在终端执行curl命令,直接测试服务是否正常响应:

# 3.x+版本
curl http://localhost:9870
# 2.x版本
curl http://localhost:50070

如果返回HTML内容,说明服务正常,问题出在浏览器设置;如果返回“连接拒绝”或超时,说明服务未启动或端口配置错误,回到步骤2重新排查。


内容的提问来源于stack exchange,提问作者Bharat Kardale

火山引擎 最新活动