在 Debian 下使用 Hadoop 出错很常见,原因可能很多(环境、配置、权限、Java 版本等)。最有效的方法是看错误日志,下面我按「通用排查步骤 → 常见错误 → 解决建议」给你一个实用指南。
# 启动时报错
$HADOOP_HOME/logs/
# 查看最近的错误日志
tail -n 200 $HADOOP_HOME/logs/hadoop-*-namenode-*.log
tail -n 200 $HADOOP_HOME/logs/hadoop-*-datanode-*.log
或者:
jps
看 NameNode / DataNode / ResourceManager 是否真的起来了。
java -version
echo $JAVA_HOME
Hadoop 对 Java 版本敏感(推荐 Java 8 或 11)。
报错示例
Error: JAVA_HOME is not set and could not be found
解决
sudo apt install openjdk-11-jdk
编辑:
nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
加上:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
报错
Permission denied (publickey,password)
解决
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh localhost
报错
NameNode is not formatted
解决(会清空数据!)
hdfs namenode -format
⚠ 只在第一次或确认数据可丢时使用。
常见原因:
解决
删掉 data 目录(配置在 hdfs-site.xml):
rm -rf /tmp/hadoop-*/
再重新 format。
Debian 默认可能开了服务占用 8088 / 9870。
netstat -tunlp | grep 9870
改 hdfs-site.xml 或 yarn-site.xml 的端口。
不要用 root 跑 Hadoop。
useradd hadoop
chown -R hadoop:hadoop /opt/hadoop
su hadoop
✅ Java 装好
✅ JAVA_HOME 设置
✅ SSH 免密
✅ 不是 root 用户
✅ 配置文件正确
✅ 日志无 ERROR
你把下面信息发我,我可以直接帮你改:
我可以根据你的日志一步步帮你修。