Ubuntu 上 Hadoop 故障排查清单
一 快速定位流程
二 常见症状与修复要点
“hadoop: 未找到命令”或 “Unable to find Hadoop directory”
原因:未安装、安装路径错误、或 PATH/HADOOP_HOME 未设置。
处理:确认安装目录存在(ls $HADOOP_HOME),在 ~/.bashrc 或 /etc/profile 中正确设置 HADOOP_HOME、PATH,执行 source 使其生效;必要时修正目录权限(chown/chmod)。
“ERROR: JAVA_HOME is not set and could not be found”
原因:Hadoop 启动脚本未获取到 JAVA_HOME。
处理:在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 显式设置 export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64(路径以本机为准)。
启动后 jps 缺少组件或进程反复退出
原因:配置错误、目录权限不足、或 tmp/数据目录 初始化异常。
处理:核对 core-site.xml/hdfs-site.xml 配置;检查 HADOOP_HOME 与数据目录权限;伪分布式/集群切换导致不一致时,清理各节点的 tmp 目录后执行 hdfs namenode -format 再启动。
主节点正常但从节点只有 jps 或 Live datanodes 为 0
原因:从节点配置不一致、网络不通、防火墙拦截、或 DataNode 数据目录 异常。
处理:对比主从 core-site.xml/hdfs-site.xml 与 workers 配置;在从节点查看 DataNode 日志 定位报错;确保节点间端口与 ufw/iptables 策略放行;必要时清理从节点数据目录后重启。
访问 50070/8088 等 Web UI 失败
原因:端口变更、服务未启动、或防火墙阻断。
处理:Hadoop 3.x 中 NameNode Web UI 默认端口为 9870(50070 为 2.x);确认 NameNode/ResourceManager 已启动并监听;Ubuntu 执行 ufw allow 9870,8088 放行端口后重试。
三 关键配置与端口速查
| 组件 | 关键配置项 | 默认端口 | 说明 |
|---|---|---|---|
| HDFS NameNode | core-site.xml: fs.defaultFS=hdfs:// |
9870 | 3.x 的 NameNode Web UI 端口(2.x 为 50070) |
| HDFS DataNode | hdfs-site.xml: dfs.datanode.data.dir | 50010/50020/50075 | 数据传输与 HTTP 访问端口 |
| YARN ResourceManager | yarn-site.xml | 8088 | ResourceManager Web UI |
| YARN NodeManager | yarn-site.xml | — | 每个节点的计算资源管理 |
| 历史服务器 | mapred-site.xml | 19888 | JobHistory Server Web UI |
| 本地/伪分布式示例 | core-site.xml | 9000 | fs.defaultFS 常用本地端口 |
| 防火墙示例 | ufw | 见右 | ufw allow 9870,8088,19888,9000,50010,50020,50075 |
四 高频命令与一键检查脚本