“Linux 上 Hadoop 总报错”这个问题太宽泛了,Hadoop 报错的原因非常多。下面我按最常见原因给你系统梳理一下,并告诉你怎么快速定位。
Hadoop 依赖 JDK,不是 JRE。
常见报错:
Error: JAVA_HOME is not setUnsupportedClassVersionErrorcommand not found: java✅ 解决:
java -version
echo $JAVA_HOME
要求:
JAVA_HOME 必须正确设置export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Hadoop(尤其是伪分布式)需要 本机 SSH 免密。
常见报错:
Permission denied (publickey)localhost: ssh: connect to host localhost port 22✅ 解决:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh localhost
最常见错误配置:
fs.defaultFS 写错dfs.replication 大于 DataNode 数量典型报错:
NameNode is not formattedCannot create directoryConnection refused✅ 解决:
hdfs namenode -format
⚠️ 只格式化一次!
常见报错:
Port 9000 already in useConnection refused✅ 解决:
netstat -tunlp | grep 9000
systemctl stop firewalld
Hadoop 不能用 root 运行!
常见报错:
mkdir: Permission deniedCannot lock storage✅ 解决:
chown -R hadoop:hadoop /opt/hadoop
小内存机器跑 Hadoop 必炸。
典型报错:
Java heap spaceContainer killed✅ 解决:
mapred-site.xmlyarn.nodemanager.resource.memory-mb请把下面信息贴出来,我可以直接帮你定位:
namenode -format如果你愿意,可以直接把报错截图或文字发我,我帮你一行一行看。