在 Linux 上运行 Hadoop“慢”,通常不是单一原因,而是资源配置、系统参数、Hadoop 自身设置、数据/任务特征几方面叠加。下面按最常见原因 → 排查方法 → 解决建议来说明。
Hadoop 是吃内存 + 磁盘 IO + CPU的:
✅ 检查:
free -h
top
htop
✅ 建议:
Hadoop 极度依赖磁盘:
✅ 检查:
iostat -x 1
✅ 建议:
dfs.datanode.data.dir比如:
dfs.replication=3(单机没必要)✅ 单机/测试环境建议:
dfs.replication=1
yarn.nodemanager.resource.memory-mb=物理内存*0.8
默认 JVM 参数很差:
✅ 调整:
export HADOOP_HEAPSIZE=2048
或:
HADOOP_OPTS="-Xmx2g -XX:+UseG1GC"
Hadoop 会打开大量文件
✅ 检查:
ulimit -n
✅ 修改:
* soft nofile 65536
* hard nofile 65536
✅ 建议:
/etc/hosts 配好systemctl stop firewalld
Hadoop 极度怕 swap
✅ 检查:
free -h
✅ 关闭 swap:
swapoff -a
HDFS 不适合小文件:
✅ 解决:
CombineFileInputFormat✅ 检查:
yarn application -status <appId>
free -h
top
iostat -x 1
ulimit -n
hdfs dfsadmin -report
yarn node -list
你可以告诉我:
我可以直接帮你定位是哪一层慢。