You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过hdfs dfs命令从本地笔记本访问云端EC2上的HDFS?

解决AWS EC2单节点HDFS公网访问连接拒绝问题

问题原因

你的HDFS NameNode当前仅监听本地回环地址(127.0.0.1),因为core-site.xml里fs.defaultFS配置为hdfs://localhost:9000,导致外部通过EC2公网IP无法建立连接。而YARN的8088端口能正常访问,是因为YARN服务默认绑定实例内网IP或0.0.0.0,不受此限制。

修复步骤

1. 修改HDFS核心配置文件

登录EC2实例,编辑/opt/hadoop/etc/hadoop/core-site.xml,将fs.defaultFS的值替换为EC2实例的内网IP(比如你的实例内网IP是172.31.11.139),也可以设置为0.0.0.0:9000(允许绑定所有可用网络接口)。

修改后的配置示例:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.31.11.139:9000</value>
    </property>
</configuration>

2. (可选)显式设置NameNode RPC地址

编辑/opt/hadoop/etc/hadoop/hdfs-site.xml,添加或修改以下配置,确保RPC服务绑定到相同的IP和端口:

<property>
    <name>dfs.namenode.rpc-address</name>
    <value>172.31.11.139:9000</value>
</property>

3. 重启HDFS服务

执行以下命令重启HDFS,使配置生效:

stop-dfs.sh
start-dfs.sh

4. 验证端口监听状态

用以下命令检查9000端口的绑定情况,确认输出中显示的是内网IP或0.0.0.0,而非127.0.0.1:

ss -tulpn | grep 9000

5. 本地测试连接

在你的笔记本上重新执行HDFS命令:

hdfs dfs -ls -h -R hdfs://18.216.33.186:9000

额外注意事项

  • 若EC2实例开启了本地防火墙(如ufw),需确保9000端口允许外部访问,Ubuntu默认ufw是关闭状态,无需额外操作。
  • 避免直接绑定EC2公网IP,因为公网IP可能是动态分配的(除非使用弹性IP),绑定内网IP更稳定,外部通过公网IP访问时AWS会自动完成NAT转发。

内容的提问来源于stack exchange,提问作者Jenny Lian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:12:32