调试 Debian 上的 Hadoop,通常可以分成系统/环境层、Hadoop 配置层、运行日志层、应用层几个维度来做。下面给你一套比较实用的排查思路和方法。
Hadoop 强依赖 JDK:
java -version
which java
Hadoop 3.x 推荐:
检查 JAVA_HOME:
echo $JAVA_HOME
JAVA_HOME 必须在:
~/.bashrc/etc/profilehadoop-env.sh 中正确设置NameNode 启 DataNode 需要 SSH:
ssh localhost
不成功就:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
hostname
cat /etc/hosts
至少要有:
127.0.0.1 localhost
192.168.1.10 master
192.168.1.11 slave1
Hadoop 配置里不要用 IP,用主机名更稳。
重点看这几个:
etc/hadoop/core-site.xmletc/hadoop/hdfs-site.xmletc/hadoop/mapred-site.xmletc/hadoop/yarn-site.xmletc/hadoop/hadoop-env.sh常见错误:
fs.defaultFS 写错dfs.namenode.name.dir 权限不对yarn.resourcemanager.hostname 没配hdfs getconf -confKey fs.defaultFS
或:
yarn getconf -confKey yarn.resourcemanager.hostname
start-dfs.sh
start-yarn.sh
或伪分布:
start-all.sh
jps
正常至少应有:
缺哪个,就查哪个日志。
$HADOOP_HOME/logs/
常见文件:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logyarn-*-resourcemanager-*.log实时看:
tail -f $HADOOP_HOME/logs/hadoop-*-namenode-*.log
hdfs namenode -format
clusterID 不一致(重格式化后常见)hdfs dfsadmin -report
hdfs fsck /
hdfs dfs -ls /
在 log4j.properties 中:
log4j.logger.org.apache.hadoop=DEBUG
或直接:
export HADOOP_ROOT_LOGGER=DEBUG,console
jps 看缺谁如果你愿意,可以把:
jps 输出贴出来,我可以直接帮你定位具体问题。