在 Linux 上运行 Hadoop 时,负载(load average)过高通常不是单一原因,而是 CPU、内存、磁盘 I/O、网络或 Hadoop 自身配置共同导致的。下面按常见原因 → 表现 → 排查方法来说明。
表现
top 中 CPU 使用率很高(user / system)常见来源
排查
top
htop
mpstat -P ALL 1
YARN 页面查看:
http://resourcemanager:8088
表现
free -h 看到 swap 被使用原因
排查
free -h
vmstat 1
cat /proc/meminfo
jstat -gc <pid>
典型问题
yarn.nodemanager.resource.memory-mb=64G
但机器只有 32G
表现
%wa(iowait)很高原因
排查
iostat -x 1
iotop
df -h
优化
表现
原因
排查
iftop
sar -n DEV 1
常见错误配置:
yarn.scheduler.maximum-allocation-mb 太大
yarn.nodemanager.resource.memory-mb / container 内存太小
dfs.blocksize 太小(如 64M → 大量 block)
dfs.replication 太高
表现
ps -eo pid,stat,comm | grep D
# 1. 看整体负载
uptime
top
# 2. 看是哪类资源
vmstat 1
iostat -x 1
mpstat -P ALL 1
# 3. 看 Hadoop
yarn top
yarn application -list
Hadoop 负载高 ≠ CPU 高
如果你愿意,可以告诉我:
top / iostat 的输出我可以直接帮你定位具体配置问题。