在 CentOS 上配置 HDFS 出错是很常见的问题,通常可以通过定位错误 → 修正配置 → 清理状态 → 重启来解决。下面按常见错误场景 + 处理步骤给你一个实用排查指南。
HDFS 的日志一般在:
$HADOOP_HOME/logs/
重点关注:
hadoop-*-namenode-*.loghadoop-*-datanode-*.log快速看错误:
tail -n 100 $HADOOP_HOME/logs/hadoop-*-namenode-*.log
症状
clusterID 不一致解决
# 停止集群
stop-dfs.sh
# 删除错误的数据目录(配置文件里定的)
rm -rf /data/hadoop/dfs/name
rm -rf /data/hadoop/dfs/data
# 重新格式化
hdfs namenode -format
⚠️ 只在首次部署或确认数据可丢时这样做
常见错误:
<value>hdfs://localhost:9000</value>
但主机名不对或端口冲突
✅ 推荐写法:
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
检查:
hostname
cat /etc/hosts
例如:
<value>/home/hadoop/dfs/name</value>
但目录不存在或权限不对
✅ 解决:
mkdir -p /home/hadoop/dfs/name
chown -R hadoop:hadoop /home/hadoop
症状
start-dfs.sh 无反应Permission denied (publickey)✅ 解决:
ssh-keygen -t rsa
ssh-copy-id localhost
ssh-copy-id slave1
测试:
ssh localhost
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
症状
✅ 解决:
echo $JAVA_HOME
在 hadoop-env.sh 中:
export JAVA_HOME=/usr/java/jdk1.8.0_xx
# 1. 停服务
stop-dfs.sh
# 2. 检查配置文件
vi $HADOOP_HOME/etc/hadoop/core-site.xml
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
# 3. 清理错误状态(如需要)
rm -rf /data/hadoop/dfs/*
# 4. 重新格式化(仅 NameNode)
hdfs namenode -format
# 5. 启动
start-dfs.sh
# 6. 验证
jps
hdfs dfsadmin -report
你可以把下面信息发我:
core-site.xml / hdfs-site.xml我可以直接帮你改配置 ✅