CentOS HDFS集群维护指南
start-dfs.sh启动所有NameNode和DataNode服务,stop-dfs.sh停止服务;使用jps命令查看NameNode、DataNode等进程是否运行;通过hdfs dfsadmin -report获取集群详细状态(包括DataNode数量、存储容量、剩余空间等)。/etc/hadoop/conf/目录下的core-site.xml、hdfs-site.xml复制到新节点相同目录;编辑新节点hdfs-site.xml,添加dfs.namenode.datanode.registration.ip-hostname-check false(避免IP/主机名校验问题);在新节点执行hadoop-daemon.sh start datanode启动服务,回到NameNode节点执行hdfs dfsadmin -report验证新节点是否加入。hdfs dfsadmin -decommissionNode <目标节点主机名/IP>,等待数据迁移完成;执行hdfs dfsadmin -refreshNodes使配置生效。hdfs dfsadmin -report查看集群整体状态;hdfs fsck /检查文件系统健康状况(识别损坏文件块、丢失副本);hdfs dfs -df -h /查看HDFS根目录空间使用情况(总容量、已用容量、剩余容量)。http://<namenode-host>:9870)查看集群拓扑、节点状态、存储指标等。$HADOOP_HOME/logs目录,如NameNode日志为hadoop-<username>-namenode-<hostname>.log),使用grep、awk等工具搜索“ERROR”“WARN”等关键字,及时发现异常;检查系统资源使用情况(CPU、内存、磁盘I/O),避免资源瓶颈影响集群性能。dfs.replication(副本数量,默认3,可根据存储成本调整)、dfs.namenode.handler.count(NameNode处理请求数能力,默认10,高并发场景可增大)、dfs.blocksize(数据块大小,默认128MB,大文件场景可调整为256MB)。hdfs dfs -chmod(修改文件/目录权限,如hdfs dfs -chmod 755 /user/data)、hdfs dfs -chown(修改文件/目录所有者,如hdfs dfs -chown user:group /user/data)命令设置权限;支持ACL(访问控制列表),通过hdfs dfs -setfacl(添加ACL规则,如hdfs dfs -setfacl -m user:admin:rwx /user/data)、hdfs dfs -getfacl(查看ACL规则)命令实现更精细的权限控制。core-site.xml中配置hadoop.security.audit.logger参数),记录用户的操作(如文件创建、删除、修改),便于后续追踪和审计。hdfs fsck /命令检查HDFS文件系统的一致性,识别损坏的文件块和丢失的副本;根据fsck输出结果,手动修复损坏的文件(如hdfs fsck /path/to/corrupted/file -move将损坏文件移动到/lost+found目录)或恢复丢失的副本(通过数据迁移或重新复制)。hdfs dfsadmin -allowSnapshot <目录路径>开启目录快照,hdfs dfs -createSnapshot <目录路径> <快照名称>创建快照)备份重要数据;或通过hdfs dfs -cp命令手动复制数据到其他存储介质(如本地磁盘、对象存储);数据丢失时,可通过快照、编辑日志(EditLog)或备份文件恢复数据。ping <节点IP>);使用jps命令查看进程是否运行;检查防火墙是否放行HDFS相关端口(如50070、50010);检查SSH无密码登录是否配置正确。hdfs fsck /命令检查丢失的数据块,若数据块丢失且无副本,可从备份中恢复;若有多个副本,HDFS会自动复制副本至其他节点以满足副本数量要求。/var/log/hadoop-hdfs/hadoop-<username>-namenode-<hostname>.log),寻找错误原因(如内存溢出、磁盘空间不足);若为内存溢出,调整hadoop-env.sh中的HADOOP_NAMENODE_OPTS参数(如-Xmx4g增加堆内存);若为磁盘空间不足,清理NameNode日志或DataNode数据目录;重启NameNode服务(systemctl start hadoop-hdfs-namenode)。/var/log/hadoop-hdfs/hadoop-<username>-datanode-<hostname>.log),常见原因包括磁盘空间不足(df -h检查)、配置文件错误(核对hdfs-site.xml中的dfs.datanode.data.dir路径是否正确)、网络问题(pingNameNode节点);解决对应问题后,重启DataNode服务(systemctl start hadoop-hdfs-datanode)。