你这个问题范围有点大,我先按**“在 CentOS 上配置 HDFS 时最常见的卡点”**给你梳理一下,你可以对照看是卡在哪一步。
HDFS 强依赖 JDK
检查:
java -version
echo $JAVA_HOME
常见错误:
JAVA_HOME 没配置或路径不对✅ 正确示例:
export JAVA_HOME=/usr/java/jdk1.8.0_361
HDFS 对 hostname 非常敏感
检查:
hostname
cat /etc/hosts
✅ 建议配置:
192.168.1.10 namenode
192.168.1.11 datanode1
测试:
ssh datanode1
如果还要输密码 → 没配免密
解决:
ssh-keygen -t rsa
ssh-copy-id datanode1
⚠️ 自己也要能免密自己:
ssh-copy-id localhost
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
常见错误:
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/name</value>
</property>
必须:
mkdir -p /data/hadoop/name
chown -R hadoop:hadoop /data/hadoop
❌ 用 root 启动 HDFS 会直接失败
hdfs namenode -format
⚠️ 只能格式化一次
重复格式化 → clusterID 不一致
HDFS 不建议 root 启动
正确方式:
useradd hadoop
su - hadoop
start-dfs.sh
systemctl stop firewalld
setenforce 0
或放行端口:
firewall-cmd --add-port=9000/tcp --permanent
你可以一条条核对:
你可以直接贴:
例如:
CentOS 7 + Hadoop 3.3.4
java.net.ConnectException: Connection refused
我可以直接帮你定位到具体原因。