“Linux 上 HDFS 配置/启动/访问慢”通常不是单一原因,而是网络、DNS、Java、磁盘、配置参数叠加导致的。下面按最常见原因 → 排查方法 → 解决建议给你总结。
HDFS 严重依赖主机名解析。
症状:
start-dfs.sh 卡很久UnknownHostException 或超时原因:
/etc/hosts 没配✅ 解决:
# 每台机器
vi /etc/hosts
示例:
192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2
并确保:
hostname
返回值和 /etc/hosts 一致。
HDFS 启动脚本靠 SSH。
症状:
slave1:✅ 解决:
ssh-keygen
ssh-copy-id slave1
ssh-copy-id slave2
测试:
ssh slave1 hostname
应 秒回
Linux 上 Java 随机数生成慢,非常常见。
症状:
✅ 解决(强烈推荐):
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
加:
export HADOOP_OPTS="-Djava.security.egd=file:/dev/./urandom"
或系统级:
yum install rng-tools
systemctl start rngd
<value>hdfs://master:9000</value>
如果 master 解析慢 → 全盘慢。
✅ 建议:
/etc/hosts 正确参数:
dfs.heartbeat.interval
dfs.blockreport.intervalMsec
默认一般没问题,但:
HDFS 对磁盘敏感。
检查:
iostat -x 1
df -h
✅ 建议:
dfs.datanode.data.dir 放独立磁盘症状:
✅ 关闭测试:
systemctl stop firewalld
setenforce 0
tail -f $HADOOP_HOME/logs/hadoop-*-namenode-*.log
tail -f $HADOOP_HOME/logs/hadoop-*-datanode-*.log
bash -x start-dfs.sh
time ssh slave1 hostname
time ping master
Linux 上 HDFS 慢,80% 是:主机名解析 + SSH + Java 随机数
如果你愿意,可以告诉我:
我可以直接帮你精准定位。