在 Linux 环境下使用 Hadoop 感觉“慢”,通常不是单一原因,而是硬件、系统配置、Hadoop 参数、数据特征、使用方式多方面叠加的结果。下面按常见原因分类说明,并给出排查/优化方向。
✅ 检查:
free -h
top
iostat -x 1
df -h
Hadoop 对 swap 极敏感,一旦用 swap 就非常慢。
✅ 检查:
cat /proc/sys/vm/swappiness
建议:
sysctl vm.swappiness=1
DN / NM 常因 ulimit 不够卡死或变慢。
✅ 检查:
ulimit -n
ulimit -u
✅ 建议(/etc/security/limits.conf):
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
deadline / noop 调度器(HDD/云盘)noatime✅ 示例:
mount -o remount,noatime /data
dfs.replication=3
✅ 测试可降到 2(生产谨慎)
✅ 表现:
✅ 解决:
✅ 检查:
yarn logs -applicationId xxx
看 DATA_LOCAL 比例
✅ 关键参数:
yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.resource.memory-mb
mapreduce.map.memory.mb
mapreduce.reduce.memory.mb
✅ 检查:
yarn queue -status default
✅ 调整:
mapreduce.job.maps
mapreduce.job.reduces
✅ 优化:
mapreduce.reduce.shuffle.parallelcopies✅ 检查:
ethtool eth0
sar -n DEV 1
✅ 建议:
# 系统
free -h
top
iostat -x 1
df -h
cat /proc/sys/vm/swappiness
# Hadoop
yarn node -list
hdfs dfsadmin -report
yarn logs -applicationId <appId>
Linux 上 Hadoop 慢,80% 是:swap、小文件、资源配错、网络/shuffle、数据本地性差
如果你愿意,可以告诉我:
我可以直接帮你定位具体瓶颈。