Hadoop报错 Couldn‘t find datanode to read file from. Forbidden

"Couldn't find datanode to read file from. Forbidden"

说明 Hadoop 的 Web 界面(如 http://namenode:9870/http://namenode:50070/)在尝试访问 HDFS 文件数据块 时,无法找到 DataNode 或被拒绝访问

我们来逐步分析可能原因和解决方法👇


🧩 一、明确场景

如果你是:

  • 在浏览器上访问 Hadoop 的 Web UI;
  • 点击 "Browse the filesystem"(浏览 HDFS 文件);
  • 然后点开某个文件(想下载或查看内容);
    就出现了这个错误。

说明:Web UI 能连接到 NameNode(因为能列目录),但 DataNode 层访问失败


🚨 二、常见原因与解决方法

1️⃣ DataNode 没有正常运行

最常见原因。

执行:

bash 复制代码
jps

看看是否有:

复制代码
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager

如果没有 DataNode:

bash 复制代码
start-dfs.sh

然后再刷新浏览器看看。


2️⃣ DataNode 报错或心跳丢失

在 NameNode UI 中查看:

"Datanodes" 页面(一般在 http://namenode:9870/dfshealth.html#tab-datanode

看看有没有显示 DataNode 在线。

如果状态是 DeadDecommissioned,需要重启:

bash 复制代码
hdfs --daemon stop datanode
hdfs --daemon start datanode

3️⃣ 防火墙 / 端口问题

Web UI 要从 DataNode 读取数据块,需要访问 DataNode 的 HTTP 端口(默认 9864)。

检查:

bash 复制代码
sudo netstat -tulnp | grep 9864

如果没开放:

bash 复制代码
sudo ufw allow 9864

或者干脆关闭防火墙试试:

bash 复制代码
sudo ufw disable

4️⃣ 浏览器访问被拒绝(Forbidden)

如果你的 DataNode 启用了安全认证(例如 Kerberos 或 Hadoop 权限),

那么 Web UI 用匿名访问被拒绝。

解决方法:

  • hdfs-site.xml 中设置:

    xml 复制代码
    <property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value>
    </property>
  • 并确保你使用的是 Hadoop 超级用户(通常是 hadoophdfs 用户)。


5️⃣ 文件确实没有副本(丢块)

查看日志:

bash 复制代码
hdfs fsck /path/to/file -files -blocks -locations

如果提示:

复制代码
Status: CORRUPT

说明文件块丢失,DataNode 没有数据,浏览器自然打不开。

可以尝试删除或重新上传文件:

bash 复制代码
hdfs dfs -rm /path/to/file

✅ 三、总结

原因 表现 解决方案
DataNode 没启动 目录能看但打不开文件 启动 DataNode
DataNode 死亡或掉线 NameNode 页面显示 Dead 重启 DataNode
防火墙阻拦 "Forbidden" 开放 9864 端口
权限问题 "Forbidden" 检查权限配置或启用 WebHDFS
文件丢块 无法读取数据 删除或重新上传文件
相关推荐
Psycho_MrZhang5 分钟前
业务应用系统类型和常用名词
大数据
Hello.Reader6 分钟前
Flink Procedures 用 SQL 的 `CALL` 跑 Flink Job(实现、类型推断、命名参数、Catalog 集成一篇搞懂)
大数据·sql·flink
武子康16 分钟前
大数据-195 KNN/K近邻算法实战:欧氏距离+投票机制手写实现,含可视化与调参要点
大数据·后端·机器学习
毕小宝16 分钟前
Elasticsearch 条件字段为 date 类型时注意事项
大数据·elasticsearch·搜索引擎
Wang's Blog36 分钟前
Kafka: Admin 客户端操作指南之主题管理与集群监控
分布式·kafka
是阿威啊41 分钟前
企业级的RDD、 Spark SQL、DataFrame、Dataset使用场景介绍
大数据·sql·spark
Pocker_Spades_A1 小时前
AI Ping 上线 GLM-4.7 与 MiniMax M2.1:两款国产旗舰模型免费用!
大数据·数据库·人工智能
源代码•宸1 小时前
goframe框架签到系统项目开发(用户认证、基于 JWT 实现认证、携带access token获取用户信息)
服务器·开发语言·网络·分布式·后端·golang·jwt
本旺1 小时前
【数据开发离谱场景记录】Hive + ES 复杂查询场景处理
hive·hadoop·elasticsearch
前端世界1 小时前
别只测功能:一套可落地的鸿蒙分布式压力测试方案
分布式·压力测试·harmonyos