CentOS 上配置 HDFS(Hadoop 分布式文件系统)失败是一个非常常见的问题,原因通常集中在环境、配置、权限、网络、Java这几个方面。下面我按高频失败原因 → 现象 → 解决办法给你系统梳理一下。
hadoop version 报错UnsupportedClassVersionErroropenjdk 版本不对JAVA_HOME 没配或配错java -version
echo $JAVA_HOME
推荐:
示例:
export JAVA_HOME=/usr/java/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
并写入:
vi ~/.bashrc
Connection refusedUnknownHostExceptionhostnamectl set-hostname master
/etc/hosts 示例:
192.168.1.10 master
192.168.1.11 node1
192.168.1.12 node2
测试:
ping master
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vi /etc/selinux/config
# SELINUX=disabled
start-dfs.sh 卡住ssh-keygen -t rsa
ssh-copy-id master
测试:
ssh master
fs.defaultFS 写错dfs.namenode.name.dir 路径不存在core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/data</value>
</property>
然后:
mkdir -p /opt/hadoop/data/name
mkdir -p /opt/hadoop/data/data
chown -R hadoop:hadoop /opt/hadoop
hdfs namenode -format
⚠️ 只能格式化一次(除非清空数据目录)
useradd hadoop
su - hadoop
| CentOS | 问题 |
|---|---|
| CentOS 8 | OpenJDK 默认太高 |
| CentOS 7 | 最稳定 |
| CentOS Stream | 不推荐生产 |
java -version
echo $JAVA_HOME
hostname
cat /etc/hosts
ssh master
systemctl status firewalld
hdfs namenode -format
start-dfs.sh
jps
你可以直接贴:
我可以直接帮你定位是哪一步错了。