Hadoop 通过 Web 界面上传文件到 HDFS 失败解决方案

问题描述

最近在复用一个之前搭建好的大数据测试平台时,发现通过 HDFS 的 Web 界面上传文件失败了,浏览器报错如下:

复制代码
Couldn't upload the file xxxx.yyy

之前使用 Web 上传功能是正常的,这次突然出现报错,需要逐步排查原因。


(一)排查一:目录权限问题

现象分析

在 HDFS 中,通过命令行创建的目录,其所属用户是当前 Linux 登录用户(例如 ac);而通过 Web 界面创建的目录,默认所属用户是 dr.who。

如果目录权限设置不当,可能导致 Web 用户没有写入权限。

尝试修复

首先尝试放宽目标目录的写权限:

bash 复制代码
hdfs dfs -chmod +w /thePathName

结果:重新上传文件,依然失败。 ❌

进一步检查

检查 hdfs-site.xml 中的权限配置:

bash 复制代码
vim hdfs-site.xml

关键配置项如下:

xml 复制代码
<configuration>
  ...
  <property>
    <!-- 测试环境可将 HDFS 权限检查关闭,便于多用户访问 -->
    <name>dfs.permissions</name>
    <value>true</value>
  </property>
  ...
</configuration>

注:若将 dfs.permissions 设为 false,则关闭 HDFS 的文件权限检查,所有用户均可随意访问。生产环境不建议关闭。

结论:本次问题并非由目录权限引起。


(二)排查二:域名解析问题

关键线索

按 F12 打开浏览器开发者工具,在控制台发现了关键错误信息:

(内部请求使用了配置中的主机名,而非 IP 地址)

原因定位

回想起之前测试成功时,浏览器和服务器在同一台机器上,且本地 hosts 文件中配置了各虚拟机的主机名与 IP 映射关系。

而这次使用的是另一台电脑,直接通过 IP 地址访问 HDFS Web 界面:

复制代码
http://192.168.168.121:9870/explorer.html

问题根源: HDFS 的 Web 上传功能在后台通信时,使用的是配置文件中的主机名(如 vm00、vm01 等),而非访问时使用的 IP 地址。如果浏览器所在机器无法解析这些主机名,上传请求就会失败。

解决方案

在浏览器所在机器的 hosts 文件中,添加 HDFS 集群各节点的主机名映射:

bash 复制代码
# Linux/Mac: /etc/hosts
# Windows: C:\Windows\System32\drivers\etc\hosts

192.168.168.121 vm00
192.168.168.122 vm01
192.168.168.123 vm02
192.168.168.124 vm10
192.168.168.125 vm11
# ... 其他节点

刷新 DNS 缓存

修改 hosts 文件后,需要刷新 DNS 缓存使其立即生效:

Windows 系统:

cmd 复制代码
ipconfig /flushdns

Linux 系统:

bash 复制代码
sudo systemctl restart systemd-resolved
# 或
sudo service network-manager restart

macOS 系统:

bash 复制代码
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

验证结果

刷新 DNS 后,重新通过 Web 界面上传文件,上传成功! ✅


总结

排查项 结果 说明
目录权限 ❌ 不是原因 chmod +w 和 dfs.permissions 配置均正常
域名解析 ✅ 根本原因 浏览器所在机器需能解析 HDFS 节点主机名

核心要点: 使用 HDFS Web 界面上传文件时,浏览器所在计算机必须能够正确解析 HDFS 集群中各节点的主机名。建议通过配置本地 hosts 文件或搭建内网 DNS 服务来解决。

相关推荐
卷毛迷你猪4 天前
快速实验篇(A11)数据集成与多维分析:从单实验产出到跨实验宽表
hive·hadoop
卷毛迷你猪5 天前
快速实验篇(A10)短序列上 SPI 的失效机制
hadoop
Francek Chen5 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria5 天前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
计算机源码社6 天前
基于大数据技术的台北市住宅价格影响因素挖掘与可视化分析-基于Python与Hadoop的台北市住宅价格数据仓库构建与可视化
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
计算机源码社6 天前
基于Hadoop+Spark的乳腺癌病理数据可视化分析系统 基于K-Means聚类与PCA降维的乳腺癌形态特征分析系统
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
卷毛迷你猪7 天前
快速实验篇(A9-2)Python vs MapReduce:小批量任务的工具选择
大数据·hadoop
Ahtacca8 天前
hadoop部署前置准备
hadoop
计算机源码社8 天前
基于K-Means聚类的新生儿败血症临床分型与可视化分析系统 基于数据挖掘的新生儿败血症生命体征时序走势与关联性可视化研究
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
计算机源码社9 天前
基于大数据的全球温室气体排放燃料结构与碳强度评估研究-基于Spark的全球温室气体排放多维度检测与评估分析
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计