“Linux 上 HDFS 配置报错”原因很多,需要先看具体报错信息和配置场景才能精确定位。下面我按最常见原因 + 排查思路给你一个通用清单,你可以对照排查;如果你愿意,把报错日志贴出来,我可以直接帮你定位。
JAVA_HOME 未配置或配置错误典型报错:
Error: JAVA_HOME is not set and could not be found
解决:
echo $JAVA_HOME
如果没有输出,编辑:
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
加入:
export JAVA_HOME=/usr/java/jdk1.8.0_XXX
core-site.xml 配置错误常见错误:
fs.defaultFS 写错示例正确配置:
<property>
<name>fs.defaultFS</name>
<datavalue>hdfs://localhost:9000</datavalue>
</property>
⚠️ 注意:
localhosthdfs://namenode-host:9000hdfs-site.xml 配置错误典型问题:
dfs.replication 大于 DataNode 数量示例:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
权限问题:
mkdir -p /opt/hadoop/data/namenode
chown -R hadoop:hadoop /opt/hadoop
报错:
org.apache.hadoop.hdfs.server.namenode.NameNode: java.io.IOException: NameNode is not formatted
解决:
hdfs namenode -format
⚠️ 只在首次启动前执行一次
报错:
Permission denied (publickey,password)
解决:
ssh-keygen -t rsa
ssh-copy-id localhost
# 或
ssh-copy-id datanode1
常见端口:
systemctl stop firewalld
# 或
iptables -F
vi /etc/hosts
示例:
127.0.0.1 localhost
192.168.1.10 namenode
192.168.1.11 datanode1
⚠️ 不要只写 127.0.0.1 主机名
JAVA_HOME 已配置core-site.xml 正确hdfs-site.xml 正确请把以下信息发我:
logs/ 下)core-site.xml / hdfs-site.xml 内容我可以直接告诉你哪一行配置错了、怎么改。