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

无法访问Hadoop集群文件:WebHDFS调用报错求助

问题排查方案

核心原因:端口使用错误

你当前代码里用的9000是HDFS的RPC/IPC通信端口,而WebHDFS服务运行在NameNode的HTTP端口上,默认是50070,这是导致报错的主要原因。

具体修复步骤

  1. 修改代码中的端口配置
    将WebHDFS客户端的端口从9000改为50070:

    var hdfs = WebHDFS.createClient({
        user: 'ubuntu',
        host: 'localhost',
        port: 50070 // 替换为WebHDFS默认端口
    });
    
  2. 确认WebHDFS功能已启用
    检查Hadoop配置文件${HADOOP_HOME}/etc/hadoop/hdfs-site.xml,确保存在以下配置项:

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    

    如果之前没有添加该配置,修改后需要重启HDFS服务:

    stop-dfs.sh
    start-dfs.sh
    
  3. 验证WebHDFS服务可用性
    用curl命令测试WebHDFS是否正常响应:

    curl "http://localhost:50070/webhdfs/v1/sample.txt?op=OPEN&user.name=ubuntu"
    

    如果返回包含文件内容或跳转地址的响应,说明WebHDFS服务正常。

  4. 重新运行Node.js代码
    修改端口后重新执行脚本,应该可以正常读取HDFS中的/sample.txt文件。

补充说明

你提到的50700端口无法连接,大概率是因为该端口并非WebHDFS服务端口(不同Hadoop版本的端口可能有差异,但默认WebHDFS端口都是50070或9870,后者是Hadoop 3.x的默认HTTP端口),可以通过查看Hadoop的hadoop-env.sh或hdfs-site.xml中的dfs.namenode.http-address配置确认准确端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:20:27