在 CentOS 上感觉 HDFS 很慢,通常不是单一原因,而是和 系统配置、硬件、HDFS 参数、网络 都有关系。下面按常见原因给你梳理一下,方便你逐项排查。
HDFS 是“写多份 + 顺序写”,对磁盘很敏感。
常见问题:
mount 参数不合理(如 atime)建议:
# 查看磁盘负载
iostat -x 1
# 挂载时建议
mount -o noatime,nodiratime /dev/sdb /data
查看:
df -T
HDFS(尤其是 DataNode)很吃内存。
问题:
检查:
free -h
swapon -s
建议:
swapoff -a
CentOS 默认:
可能导致:
检查:
getenforce
systemctl status firewalld
建议(测试环境):
setenforce 0
systemctl stop firewalld
ethtool eth0
问题:
HDFS 极度依赖 hostname 解析
检查:
hostname
cat /etc/hosts
✅ 建议:
/etc/hostsdfs.replication=3
在:
会明显变慢
dfs.blocksize=128M (默认)
如果是小文件特别多:
DataNode / NameNode 堆内存太小:
HADOOP_HEAPSIZE=1G # 太小
原因通常是:
你可以依次看:
# 1. 磁盘
iostat -x 1
# 2. 内存
free -h
# 3. 网络
ping <datanode>
ethtool eth0
# 4. HDFS
hdfs dfsadmin -report
如果你愿意,可以告诉我:
我可以直接帮你定位到 具体参数怎么改。