在 Linux 上 HDFS(Hadoop 分布式文件系统)占用高,通常指 磁盘占用高、CPU 占用高或内存占用高。下面按常见原因分类说明,并给出排查与解决思路。
dfs.replication=3排查
hdfs dfs -du -h /
hdfs dfsadmin -report
解决
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
HDFS 有回收站(Trash)
排查
hdfs dfs -ls /user/*/.Trash
解决
hdfs dfs -expunge
或修改:
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
排查
du -sh /var/log/hadoop/*
解决
/tmpdu -sh /tmp/*
现象
解决
export HADOOP_NAMENODE_OPTS="-Xmx8g"
正常现象
free -h
Linux 会主动使用内存做 cache,不算异常。
hdfs balancer
解决
<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>1048576</value>
</property>
解决
Linux 文件系统 inode 满,也会“磁盘满了”
df -i
原因
# HDFS 总体情况
hdfs dfsadmin -report
# 目录大小
hdfs dfs -du -h /
# Linux 磁盘
df -h
df -i
# 进程资源
top
HDFS 占用高,90% 是因为小文件多 + 副本数高 + 回收站/日志未清理。
如果你能提供:
hdfs dfsadmin -report 输出我可以帮你精确分析。