排查 Linux 上 Hadoop 故障通常要分层进行:先确认系统/网络,再确认 Hadoop 服务与日志,最后定位具体组件(HDFS / YARN / MapReduce)。下面给你一套实用排查思路 + 常用命令。
hostname
hostname -f
cat /etc/hosts
✅ 检查:
/etc/hosts 中 IP 与 hostname 对应正确测试网络:
ping namenode
ssh datanode1
Hadoop 对时间敏感:
date
建议:
ntpdate ntp.aliyun.com
# 或
systemctl status chronyd
whoami
id
✅ Hadoop 用户(如 hadoop)是否一致
✅ 数据目录权限是否正确
jps
典型进程:
❌ 少了某个进程 → 对应服务未启动或已挂
start-dfs.sh
start-yarn.sh
stop-dfs.sh
stop-yarn.sh
单节点调试:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
$HADOOP_HOME/logs/
常见文件:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logyarn-*-resourcemanager-*.logyarn-*-nodemanager-*.logtail -f $HADOOP_HOME/logs/hadoop-*-datanode-*.log
常见关键词:
ExceptionERRORConnection refusedPermission deniedSpace availablehdfs dfsadmin -report
看:
hdfs fsck /
常见输出:
CORRUPTUNDER_REPLICATEDMISSING修复:
hdfs fsck / -delete
常见原因:
dfs.namenode.name.dir 权限不对查看:
cat $HADOOP_HOME/logs/hadoop-*-namenode-*.log
格式化(⚠️会清数据):
hdfs namenode -format
yarn application -list
yarn application -status application_xxx
yarn logs -applicationId application_xxx
常见错误:
检查:
yarn node -list
看:
df -h
Hadoop 对磁盘满非常敏感
free -h
top
ulimit -a
建议:
ulimit -n 65536
| 现象 | 可能原因 |
|---|---|
| DataNode 起不来 | 集群ID不一致 |
| NameNode 无法启动 | 元数据损坏 |
| 任务一直 ACCEPTED | ResourceManager 问题 |
| 节点 UNHEALTHY | 磁盘满 |
| SSH 失败 | 免密未配置 |
| 端口拒绝 | 防火墙 |
systemctl stop firewalld
setenforce 0
如果你愿意,可以告诉我:
我可以直接帮你精准定位问题。