赞
踩
今天学习Hadoop组建集群,启动后外部使用192.168.100.110:9870访问NameNode显示连接拒绝,关掉防火墙后依然不行。只有Linux本地能访问。
折腾半天,最后问了ChatGPT,原来是HDFS配置文件的dfs.namenode.http-address配置有问题
修改hdfs-site.xml
原始配置:
<!-- NameNode Web端访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>host110:9870</value><!--host110是我本机Linux的主机名 -->
</property>
修改后:
<!-- NameNode Web端访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:9870</value>
</property>
这个问题通常是由于防火墙或网络配置限制所导致的。首先,确保你的防火墙设置允许外部访问该端口。在Hadoop所在的机器上,检查防火墙设置并打开端口 9870:
如果你使用的是 iptables
,你可以使用以下命令打开端口:
sudo iptables -I INPUT -p tcp --dport 9870 -j ACCEPT
sudo service iptables save
sudo systemctl restart iptables
如果你使用的是 firewalld
,你可以使用以下命令打开端口:
sudo firewall-cmd --zone=public --add-port=9870/tcp --permanent
sudo firewall-cmd --reload
如果防火墙并不是问题,那么检查一下Hadoop的配置文件,确保NameNode的配置中没有指定仅允许本地访问。在 hdfs-site.xml
文件中查找类似以下内容的配置项:
<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:9870</value> <!--确保这里监听的是 0.0.0.0 而不是 127.0.0.1-->
</property>
如果 dfs.namenode.http-address
的值是 localhost
或 127.0.0.1
,请将其更改为 0.0.0.0
,这样NameNode就可以接受来自任何IP的连接。
最后,确保网络配置没有限制Hadoop服务只能在本地访问。检查网络设置、路由器配置或任何其他可能影响外部访问的网络设备。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。