在 Linux 上 HDFS 负载过高,通常不是单一原因,而是 计算、存储、网络、配置 多方面叠加。下面按常见原因 → 表现 → 排查/解决思路系统说明。
原因
list / stat / create表现
排查
jstat -gc <nn_pid>
top -Hp <nn_pid>
# 看 RPC 队列
hdfs dfsadmin -report
解决
dfs.namenode.handler.count
ls -R原因
表现
iowait 高排查
iostat -x 1
dstat -d
解决
dfs.datanode.balance.bandwidthPerSec
原因
表现
rx/tx 高排查
sar -n DEV 1
iftop
解决
dfs.replication
原因
表现
解决
常见点
排查
ulimit -n
free -m
netstat -anp | wc -l
建议
fs.file-max
net.core.somaxconn
vm.swappiness=1
| 现象 | 重点看 |
|---|---|
| CPU 高 | NameNode / YARN |
| IO 高 | DataNode |
| 网络高 | 复制 / 任务 |
| RPC 慢 | NameNode handler |
| GC 多 | JVM 参数 |
dfs.namenode.handler.count=100+
dfs.datanode.handler.count=20+
dfs.datanode.balance.bandwidthPerSec=10m
dfs.replication=2~3
你可以贴出:
top / iostat / sar 截图或输出我可以直接帮你精准定位是哪一类负载问题。