ubuntu

如何解决Ubuntu HDFS故障

小樊
44
2025-11-25 03:40:50
栏目: 智能运维

Ubuntu 上排查与修复 HDFS 故障的实用流程


一、快速自检与恢复步骤


二、常见故障与对应修复

症状 快速定位 修复建议
jps 看不到 DataNode 查看 DataNode 日志($HADOOP_LOG_DIR/hadoop--datanode-.log);核对 dfs.datanode.data.dir 权限与磁盘空间 若因 clusterID 不一致 导致,先停集群,统一 NameNode 与 DataNode 的 version 文件中的 clusterID,再启动;或(会清空数据)停集群、删除 dfs 数据目录NameNode 元数据目录、执行 hdfs namenode -format、再启动
本机访问虚拟机 HDFS 报 Connection refused 在虚拟机内:telnet localhost 9000;在本机:telnet 9000;检查 core-site.xmlfs.defaultFS=hdfs://:9000;检查 /etc/hosts 映射(避免 127.0.0.1 );检查 netstat -tlpn 监听地址是否为 0.0.0.0 而非仅 127.0.0.1 修正 /etc/hostsfs.defaultFS 一致的主机名/IP;确保监听在 0.0.0.0:9000;本机 hosts 添加 ;必要时关闭防火墙 sudo ufw disable
Permission denied 查看 HDFS 权限 与当前用户;检查 dfs.permissions.enabled 临时方案:hdfs dfs -chmod -R 777 /user/;或在客户端设置 HADOOP_USER_NAME=<有权限的用户>;生产建议保留权限控制,按用户/组授权
进入 Safe mode,块缺失/副本不足 hdfs dfsadmin -safemode gethdfs fsck / 查看 Under-replicated/Missing/Corrupt 先恢复副本与均衡,再退出:hdfs dfsadmin -setBalancerBandwidth 104857600hdfs balancer -threshold 5hdfs dfsadmin -safemode leave;若文件已损坏且可丢弃:hdfs fsck / -delete
端口被占用(如 9870/50070) **netstat -tlpn grep 9870**
WARN util.NativeCodeLoader: Unable to load native-hadoop library 检查 HADOOP_HOME/lib/native 是否存在且与 glibc/Hadoop 版本匹配 ~/.bashrchadoop-env.sh 设置 JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/nativesource ~/.bashrc;若仍不匹配,可忽略该警告(功能可用)

以上条目对应 Ubuntu 环境下高频 HDFS 故障的成因与处置要点,包含 DataNode 缺失、连接拒绝、权限问题、安全模式、端口占用与本地库加载警告 等场景。


三、配置与环境的要点检查


四、数据安全与回退建议

0
看了该问题的人还看了