以下是Ubuntu环境下HDFS故障的排查步骤:
环境变量配置
确保HADOOP_HOME
和PATH
已正确设置,可通过echo $HADOOP_HOME
和echo $PATH
验证,若缺失需在~/.bashrc
中添加:
export HADOOP_HOME=/path/to/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source ~/.bashrc
生效。
服务状态检查
使用jps
命令查看NameNode、DataNode等进程是否正常运行,若缺失需通过start-dfs.sh
启动服务。
查看HDFS日志
/var/log/hadoop-hdfs/hadoop-hdfs-namenode-*.log
/var/log/hadoop-hdfs/hadoop-hdfs-datanode-*.log
grep
或tail
命令搜索ERROR
或Exception
关键字,定位具体错误(如权限不足、端口冲突等)。系统日志检查
查看/var/log/syslog
或journalctl -u hadoop-hdfs
,排查系统级错误(如防火墙拦截、磁盘挂载失败等)。
集群状态检查
hdfs dfsadmin -report
:查看DataNode数量、存储容量、副本因子等集群状态。hdfs fsck /
:检查文件系统一致性,报告损坏块或缺失文件。权限与配置验证
hdfs dfs -ls /path
,确保用户对目标路径有读写权限,必要时用hdfs dfs -chown
或-chmod
调整。core-site.xml
(如fs.defaultFS
)、hdfs-site.xml
(如dfs.replication
)参数是否正确,可通过cat
命令查看。网络连通性
ping
测试节点间网络连通性,telnet<IP> <端口>
(如telnet namenode-ip 9000
)验证端口开放情况。ufw status
或iptables -L
,确保HDFS端口(如9000、50070)未被拦截,必要时临时关闭防火墙测试。资源使用监控
通过top
、htop
或df -h
查看CPU、内存、磁盘使用情况,若资源不足可能导致服务异常,需优化或扩容。
安全模式处理
若NameNode处于安全模式,可通过hdfs dfsadmin -safemode leave
退出,但需先确保集群无故障。
数据修复与恢复
hdfs fsck / -files -blocks -locations -delete
(谨慎使用-delete
,可能丢失数据)。hdfs dfs -cp
命令还原。注意:操作前建议备份重要数据,生产环境需谨慎执行修复命令,避免数据丢失。