在 Debian 上部署或运行 Hadoop 时,报错原因很多,需要先定位具体错误。下面我给你一个通用排查思路 + 常见报错及解决方案,你可以对照使用;如果你愿意,把完整报错日志贴出来,我可以更精确地帮你分析。
Hadoop 依赖 Java(推荐 JDK 8 或 11)
java -version
✅ 正常示例:
openjdk version "1.8.0_362"
❌ 常见错误:
java: command not found✅ 解决:
sudo apt update
sudo apt install openjdk-8-jdk
设置 JAVA_HOME:
echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> ~/.bashrc
source ~/.bashrc
Hadoop(尤其是伪分布式)需要 SSH 本机免密登录
ssh localhost
❌ 如果提示输入密码,需要配置:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
JAVA_HOME is not set报错示例:
Error: JAVA_HOME is not set and could not be found
✅ 解决: 编辑 Hadoop 配置:
nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
添加或修改:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
报错示例:
java.io.IOException: NameNode is not formatted
✅ 解决: 格式化 NameNode(⚠️ 会清空 HDFS 数据)
hdfs namenode -format
报错示例:
Address already in use
✅ 解决: 查看端口占用:
netstat -tunlp | grep 9000
杀掉进程:
kill -9 PID
或修改 core-site.xml 中的端口。
报错示例:
Permission denied
✅ 解决:
chown -R hadoop:hadoop /usr/local/hadoop
报错示例:
Unable to load native-hadoop library
✅ 解决(可忽略,不影响运行):
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
或安装依赖:
sudo apt install libglib2.0-dev
日志位置:
$HADOOP_HOME/logs/
重点查看:
hadoop-*-namenode-*.loghadoop-*-datanode-*.log查看最后 50 行:
tail -n 50 $HADOOP_HOME/logs/hadoop-*-namenode-*.log
| 检查项 | 命令 |
|---|---|
| Java | java -version |
| SSH | ssh localhost |
| JAVA_HOME | echo $JAVA_HOME |
| Hadoop 版本 | hadoop version |
| 进程 | jps |
请直接贴出以下信息之一:
jps 输出core-site.xml / hdfs-site.xml我可以一步一步帮你把 Hadoop 跑起来 ✅