在 CentOS 上 HDFS 读写慢 通常不是 HDFS 本身的问题,而是 系统、网络、磁盘、配置或集群状态 导致的。下面按常见原因 → 排查方法 → 解决建议来说明。
iostat 中 %util 接近 100%iostat -x 1
重点看:
%utilawaitsvctmnoatime 挂载mount -o remount,noatime /data
hdfs dfs -put 很慢ethtool eth0
ping namenode
iperf -s / iperf -c
setenforce 0
/etc/hosts 是否正确解析ulimit -n
free -m
1. 修改文件句柄
/etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
2. 关闭 swap(生产常用)
swapoff -a
3. TCP 优化
net.core.somaxconn=4096
net.ipv4.tcp_tw_reuse=1
dfs.replication=3
→ 小集群或测试环境可改为 1~2
dfs.blocksize=134217728 # 默认128M
小文件极多时会非常慢
hdfs dfs -ls 卡# 磁盘
iostat -x 1
# 网络
iperf -c datanode
# 内存
free -m
# HDFS 状态
hdfs dfsadmin -report
# 日志
tail -f /var/log/hadoop-hdfs/*.log
CentOS 上 HDFS 慢,90% 是磁盘 I/O 或网络问题,10% 是配置和集群规模问题。
如果你愿意,可以告诉我:
我可以给你针对性优化方案。