调试 Linux 上的 Hadoop 通常分为 系统层面、Hadoop 自身、MapReduce / YARN 应用 三个层次。下面给你一套从入门到进阶的实用调试思路,结合常用命令和典型问题。
Hadoop 依赖 Java:
java -version
echo $JAVA_HOME
✅ 建议:
尤其是伪分布式 / 完全分布式:
ssh localhost
否则:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
start-dfs.sh
start-yarn.sh
或:
start-all.sh # 老版本
jps
✅ 常见进程:
❌ 缺进程 = 启动失败 → 看日志
默认在:
$HADOOP_HOME/logs/
或:
$HADOOP_LOG_DIR
常见文件:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logyarn-*-resourcemanager-*.logyarn-*-nodemanager-*.logtail -f $HADOOP_HOME/logs/hadoop-*-datanode-*.log
关键词搜索:
grep -i error hadoop-*-namenode-*.log
grep -i exception hadoop-*-datanode-*.log
hdfs dfsadmin -report
✅ 看:
hdfs dfsadmin -safemode get
解除安全模式:
hdfs dfsadmin -safemode leave
hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
yarn node -list
yarn application -list
yarn logs -applicationId application_xxxx
或 Web UI:
http://localhost:8088Container killed by YARN for exceeding memory limitsClassNotFoundExceptionFileNotFoundException✅ 解决:
yarn-site.xml重点检查:
etc/hadoop/
├── core-site.xml
├── hdfs-site.xml
├── yarn-site.xml
├── mapred-site.xml
fs.defaultFS 写错namenode / datanode 目录权限不对/etc/hosts 不一致df -h
free -h
netstat -tunlp | grep java
export HADOOP_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
jps 看进程hdfs dfsadmin -report你可以直接贴出:
jps 输出我可以帮你 精确定位问题并给出修改方案 ✅