ubuntu

Hadoop在Ubuntu上的故障排除有哪些方法

小樊
37
2025-12-10 21:33:21
栏目: 智能运维

Hadoop 在 Ubuntu 上的故障排除方法

一 快速定位与通用检查

二 常见故障与修复对照表

症状 高频原因 快速修复
启动报 JAVA_HOME is not set 未设置或设置路径错误 hadoop-env.sh 中显式导出 JAVA_HOME,如:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
root 启动报缺少 *_USER 变量 Hadoop 3.x 的安全启动限制 sbin/start-dfs.sh / stop-dfs.sh 顶部加入:HDFS_DATANODE_USER=root;HDFS_DATANODE_SECURE_USER=hdfs;HDFS_NAMENODE_USER=root;HDFS_SECONDARYNAMENODE_USER=root
执行脚本报 pdsh@xxx: localhost: Connection refused pdsh 默认用 rsh /etc/profile 加入:export PDSH_RCMD_TYPE=ssh 并 source 使其生效
浏览器访问 50070 失败 Hadoop 3.x 端口变更 改用 9870(如 http://localhost:9870)
DataNode 启动失败或反复退出 切换伪分布式/分布式后 tmp/dfs/name/data 不一致 清理所有节点的临时目录,重新 hdfs namenode -format 后再启动
HDFS 命令报 No such file or directory 用户 HDFS 家目录 不存在 先执行:hdfs dfs -mkdir -p /user/$USER
命令未找到或 PATH 无效 仅当前终端导出 PATH ~/.bashrc 中追加 PATH 并 source,确保全局可用
主机名解析错误(如 “Does not contain a valid host:port authority”) /etc/hosts 或主机名含非法字符(如 _. 使用仅含字母数字与连字符的主机名,并在 /etc/hosts 正确映射
端口不通或 Live datanodes 为 0 防火墙阻断或节点间不通 放行相关端口(如 9870/8088/9000/50010/50020/50075/50090),或临时关闭 ufw 验证
出现 NativeCodeLoader 警告 缺少本地库或库路径未设置 hadoop-env.sh 添加:export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native;export HADOOP_OPTS=“-Djava.library.path=$HADOOP_PREFIX/lib”

三 配置与版本差异要点

四 实用排障脚本与命令清单

#!/usr/bin/env bash
echo "=== Java & Hadoop ==="
java -version 2>&1
hadoop version 2>&1

echo "=== Env ==="
echo "JAVA_HOME=$JAVA_HOME"
echo "HADOOP_HOME=$HADOOP_HOME"
echo "PATH=$PATH"

echo "=== Processes ==="
jps

echo "=== NameNode HTTP ==="
ss -lntp | grep 9870 || echo "9870 not listening"

echo "=== DFS Health ==="
hdfs dfsadmin -report | head -20

echo "=== Recent logs (NameNode) ==="
tail -n50 $HADOOP_HOME/logs/hadoop-*-namenode-*.log | grep -i -E 'error|exception|failed'

0
看了该问题的人还看了