温馨提示×

centos为啥hdfs满了

小樊
38
2026-09-27 14:37:17
栏目: 智能运维

在 CentOS 上 HDFS 显示“满了”,通常不是 CentOS 系统本身的问题,而是 HDFS 层面的存储或配置问题。下面按常见原因给你系统梳理一下:


一、最常见原因(按出现概率)

1️⃣ HDFS 真的写满了(数据量太大)

hdfs dfs -df -h

如果 Used% 接近 100%,说明:

  • 日志、临时文件太多
  • 没做数据清理
  • 副本数(replication)设置过高

✅ 解决:

# 删除无用数据
hdfs dfs -rm -r /user/xxx/tmp

# 降低副本数
hdfs dfs -setrep -R 2 /

2️⃣ 单节点磁盘满(DataNode 所在磁盘)

CentOS 上 HDFS 数据通常存在:

/dfs/data
/hadoop/hdfs/data
df -h

如果某块盘 100%,即使 HDFS 没满,也会报“HDFS 满”。

✅ 解决:

  • 清理系统日志
  • 扩容磁盘
  • 修改 hdfs-site.xml 的 dfs.datanode.data.dir

3️⃣ NameNode 元数据空间问题(少见但致命)

  • NameNode 不存数据,但 元数据在内存 + 磁盘
  • 小文件过多 → 元数据爆炸
hdfs dfs -count / | sort -n

✅ 解决:

  • 合并小文件
  • 使用 HAR / HBase / Iceberg

4️⃣ HDFS 配额(Quota)限制

你可能给某个目录设置了配额:

hdfs dfs -count -q /

如果 QUOTA 或 SPACEQUOTA 满了,也会显示“HDFS 满”。

✅ 解决:

hdfs dfsadmin -clrQuota /path
hdfs dfsadmin -clrSpaceQuota /path

5️⃣ 安全模式(Safe Mode)

NameNode 在启动时可能进入安全模式:

hdfs dfsadmin -safemode get

✅ 解决(确认数据完整后):

hdfs dfsadmin -safemode leave

二、CentOS 系统层常见坑

6️⃣ inode 用完(不是空间)

df -i

如果 inode 100%,HDFS 也无法写。

✅ 解决:

  • 删除大量小文件
  • 重新格式化文件系统(谨慎)

7️⃣ SELinux / 权限问题(伪“满”)

DataNode 无法写盘,报错类似:

DiskChecker: Disk error

✅ 检查:

getenforce
ls -ld /dfs/data

三、快速排查清单(建议照着做)

# 1. HDFS 使用情况
hdfs dfs -df -h

# 2. 系统磁盘
df -h
df -i

# 3. DataNode 日志
tail -n 100 /var/log/hadoop/hdfs/hadoop-hdfs-datanode-*.log

# 4. NameNode 状态
hdfs dfsadmin -report

四、如果你愿意

你可以贴一下:

  • hdfs dfs -df -h
  • df -h
  • DataNode 报错日志

我可以直接帮你判断 到底是“真满”还是“假满”。

0 踩