hadoop的50070端口不能访问网页的解决方法-总结

Hadoop集群搭建完成后,自带webUI可查看集群基本信息,也可自定义开发功能。但启动hdfs进程后,可能出现无法通过网页访问的情况。本文分析了不能访问的原因,包括配置文件未启用50070端口、防火墙未关闭、开启翻墙工具设置代理等,并给出解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

              在Hadoop集群搭建完成后,hadoop本身自带了一个webUI访问页面,我们可以观察到一些集群的基本状况,包括磁盘容量和集群节点是否正常存活状态,Hadoop版本,可以查看hdfs的一些文件位置,副本备份情况和文件块大小等。虽然功能简单一些,但是也还可以,能看一些集群的基本信息。当然我们也可以根据需要来自定义开发需要的功能,实现网页操作所有的服务。

           搭建完hadoop集群后,启动hdfs进程后,jps 查看也有相应的进程, 测试一下hdfs dfs   -put 文件到 集群上也正常,想用网页查看一下,缺发现不能打开网页。这就奇怪了啊。以下是不能访问webUI的原因。

    1. 首先要查看配置文件中是否启用了50070的端口访问。如果没有那当然不能访问了哦

             编辑配置文件hdfs-site.xml 

           没有就增加 这一段内容:

           <property>
                    <name>dfs.namenode.http.address</name>
                   <value>slave1:50070</value>
           </property>

    添加后:wq保存,重新启动一下集群。再次访问即可。一般是正常可以访问的。

 2. 应该是防火墙没有关闭,也没有设置端口允许通过防火墙访问规则,导致被拦截不能访问。

      一般最好是关闭防火墙比较关闭。 systemctl  stop   firewalld.service 关闭防火墙;  禁止自动启动就用 systemctl  disable  firewalld.service  . 就可以了。

     还有个防火墙是selinux: 要设置为  vi  /etc/selinux.config    

     

3.  还有种可能就是开启了翻墙上网的工具,会设置代理就不能打开浏览器了,当然报错不一样。

      一般是这种报错: 

这种就把这个工具退出即可,如果还是不行就换个浏览器访问或者重启一下浏览器即可。

 以上就是50070 不能访问的问题原因总结。  

### Hadoop 50070端口无法访问的原因分析与解决方案 Hadoop 的 NameNode Web UI 默认监听的是 50070 端口,在较新的版本中已被替换为 9870 端口。如果 Windows 客户端无法访问端口,可能涉及以下几个方面的问题: #### 1. **防火墙设置** 防火墙可能是阻止外部客户端访问的关键因素之一。即使虚拟机内部能够正常访问所有端口,但如果主机上的防火墙未开放特定端口,则外部设备(如 Windows 主机)将无法连接到这些端口- 可通过以下命令查看当前系统的防火墙状态并确认是否允许指定端口的流量: ```bash systemctl status firewalld ``` - 如果需要放行 TCP 50070 或者新版本中的 9870 端口,可运行如下命令[^3]: ```bash firewall-cmd --add-port=50070/tcp --permanent firewall-cmd --reload ``` #### 2. **绑定地址配置错误** NameNode 的默认监听地址通常被设定为 `localhost` (即 `127.0.0.1`),这会使得它仅接受来自本地机器的请求而忽略远程连接尝试。因此需检查 Hadoop 配置文件 (`core-site.xml`, `hdfs-site.xml`) 中的相关参数。 - 修改 `hdfs-site.xml` 文件以确保 NameNode 绑定至正确的网络接口 IP 地址而非仅仅 localhost: ```xml <property> <name>dfs.namenode.http-address</name> <value>hadoop102:50070</value> <!-- 替换 hadoop102 为主节点实际IP --> </property> ``` #### 3. **SELinux 设置冲突** 除了传统意义上的防火墙外, SELinux(安全增强型 Linux)也可能阻碍某些服务对外提供服务的能力. - 使用命令临时禁用 SELinux 来测试其影响程度: ```bash setenforce 0 ``` - 若要永久更改此行为则编辑 `/etc/selinux/config` 将其中的 `SELINUX=enforcing` 改成 `disabled`. #### 4. **代理或 NAT 层面的影响** 当使用 VMWare/VirtualBox 创建虚拟化环境时,宿主机和客户操作系统之间可能存在额外一层抽象层(NAT),这也可能导致部分端口映射失败或者不可达的情况发生。 - 对于 VirtualBox 用户而言,可以通过创建静态端口转发规则来解决这个问题;而对于 VMware Workstation Pro 则应该调整相应的网络适配器模式为桥接(Bridged Mode). --- ```python import socket def test_port(host='hadoop102', port=50070): """ 测试给定主机名/地址以及端口号是否可达 """ try: sock = socket.create_connection((host, port), timeout=5) print(f"{host}:{port} is reachable.") sock.close() except Exception as e: print(f"Unable to reach {host}:{port}. Error={e}") if __name__ == "__main__": test_port() # Example usage with default values. ``` 以上脚本可用于初步验证目标服务器上的具体端口是否可以从另一台计算机成功建立连接。 --- ### 结论 综合考虑上述几个方面的可能性之后采取相应措施解决问题。最终目的是让 master 节点(hadoop102) 上运行的服务能正确暴露出来供外界调用。
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值