温馨提示×

centos怎么排查hdfs错

小樊
38
2026-10-09 08:45:16
栏目: 智能运维

在 CentOS 上排查 HDFS(Hadoop 分布式文件系统)问题,一般可以从服务状态、日志、命令工具、系统资源、网络几个层面入手。下面给你一套比较系统的排查思路。


一、先确认 HDFS 服务是否正常运行

1. 查看 Hadoop 进程

jps

正常情况下应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode(或 StandbyNameNode)
  • ResourceManager / NodeManager(YARN,不是 HDFS 但常一起)

如果某个进程不在:

# 启动 HDFS
start-dfs.sh

# 或单独启动
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode

二、使用 HDFS 自带命令排查

1. 查看 HDFS 状态

hdfs dfsadmin -report

重点关注:

  • Live datanodes 数量
  • Dead datanodes
  • 各节点磁盘使用率

2. 检查文件系统健康

hdfs fsck / -files -blocks -locations

常见问题:

  • CORRUPT 块
  • MISSING 块
  • Under-replicated

3. 查看 NameNode 状态(HA 场景)

hdfs haadmin -getServiceState nn1
hdfs haadmin -getServiceState nn2

三、查看日志(最重要)

Hadoop 日志一般在:

$HADOOP_HOME/logs/

或

/var/log/hadoop/

关键日志文件

  • NameNode:
    hadoop-hdfs-namenode-*.log
    
  • DataNode:
    hadoop-hdfs-datanode-*.log
    
  • 启动错误:
    hadoop-hdfs-namenode-*.out
    

实时看日志

tail -f $HADOOP_HOME/logs/hadoop-hdfs-datanode-*.log

常见错误关键词:

  • Connection refused
  • Disk failed
  • Block missing
  • Permission denied
  • OutOfMemoryError

四、CentOS 系统层面排查

1. 磁盘空间

df -h

HDFS 对磁盘满非常敏感。

2. 磁盘健康

dmesg | grep error
lsblk

3. 内存 / CPU

free -h
top

4. 防火墙 / SELinux

systemctl status firewalld
getenforce

HDFS 端口(如 50070、8020、9000)需互通。


五、网络与端口排查

1. 看端口监听

netstat -tunlp | grep java

或

ss -tunlp

2. 测试连通性

telnet namenode-ip 8020

3. hosts 配置

cat /etc/hosts

确保:

  • 主机名能解析
  • 不要有 127.0.0.1 绑定到真实 hostname

六、常见 HDFS 问题速查

现象 可能原因
DataNode 起不来 clusterID 不一致
块丢失 磁盘坏 / 误删 block
写不进数据 磁盘满 / 副本不足
NameNode 卡死 内存不足 / fsimage 太大
Web 页面打不开 防火墙 / 端口错

clusterID 不一致修复(谨慎)

# 从 NameNode 拷贝 clusterID 到 DataNode

七、建议的排查顺序(总结)

  1. jps 看进程
  2. hdfs dfsadmin -report
  3. 看 NameNode / DataNode 日志
  4. df -h 看磁盘
  5. 网络 / 防火墙
  6. fsck 检查块

如果你愿意,可以告诉我:

  • 是 单机 / 集群 / HA
  • 具体报错信息或日志片段
  • 是 起不来 / 读写失败 / 丢块

我可以直接帮你定位到具体原因。

0 踩