在 Debian 下跑 Hadoop 报错是很常见的情况,原因可能很多(环境、配置、权限、Java 版本等)。我给你一个通用排查思路和常见错误速查,你可以对照看看。
Hadoop 依赖 Java:
java -version
推荐:
如果没装:
sudo apt update
sudo apt install openjdk-11-jdk
配置 JAVA_HOME:
echo $JAVA_HOME
如果没有:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
(写进 ~/.bashrc 或 hadoop-env.sh)
ssh localhost
不行就:
sudo apt install openssh-server
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Hadoop 报错不要只看终端,要看日志:
$HADOOP_HOME/logs/
常见文件:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logyarn-*-resourcemanager-*.log看末尾的 ERROR 或 Exception
解决:
vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
原因: 权限不足
解决:
sudo chown -R $USER:$USER /tmp/hadoop-*
或改配置:
<property>
<name>hadoop.tmp.dir</name>
<value>/home/youruser/hadoop/tmp</value>
</property>
查看:
hdfs namenode -format
⚠️ 会清空数据,仅第一次或重置用
常见原因:
clusterID 不一致解决:
dfs.datanode.data.dirnamenode -formatnetstat -tunlp | grep 9000
或改 core-site.xml 端口
Debian 默认禁止 root 跑 Hadoop
必须用普通用户
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
你可以直接贴:
我可以直接帮你定位 ✅