一、基础环境维护
chronyd)确保所有CentOS节点时间一致,避免因时间差异导致HDFS元数据同步问题或任务调度异常。firewalld或iptables开放Hadoop必要端口(如NameNode的50070/9870、DataNode的50010/50020);配置SSH免密登录,方便集群节点间无密码通信(如ssh-keygen -t rsa生成密钥并分发至所有节点)。hdfs dfs -chmod设置读写执行权限,hdfs dfs -chown设置所有者),开启dfs.permissions.enabled(默认true)确保权限生效;通过ACL(访问控制列表)实现更精细的权限控制(如hdfs dfs -setfacl -m user:admin:rwx /path添加用户权限)。二、集群状态监控
hdfs dfsadmin -report查看集群整体状态(包括DataNode数量、存储容量、可用空间、块副本数);hdfs fsck /检查HDFS文件系统完整性(报告损坏块、丢失副本等问题);hdfs dfsadmin -safemode get确认NameNode是否处于安全模式(安全模式下无法写入数据)。check_hdfs插件监控HDFS服务可用性、磁盘空间)实现集中监控与告警。dfs.namenode.jmx-address设置为namenode-host:9870),通过JConsole、VisualVM等工具实时查看NameNode、DataNode的运行状态(如堆内存使用、线程数、GC情况)。三、日志管理
logs文件夹中(如NameNode日志路径为/home/hadoop/bigdata/hadoop-3.3.6/logs/hadoop-hadoop-namenode-centos.log),可通过hadoop.log.dir(日志目录)和hadoop.log.file(日志文件名)配置项调整。tail -f命令实时监控日志更新(如tail -f /path/to/namenode.log);通过journalctl -u hadoop-namenode查看Systemd管理的HDFS服务日志(适用于CentOS 7及以上)。logrotate工具防止日志文件过大,配置文件示例(/etc/logrotate.d/hadoop):/var/log/hadoop/hdfs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
}
此配置表示每天轮转日志,保留7个压缩备份(如.log.1.gz),缺失日志时不报错,空日志不轮转。namenode.log)、DataNode(datanode.log)日志诊断问题(如DataNode心跳失败、块复制延迟);启用HDFS审计日志(在hdfs-site.xml中配置dfs.audit.logger),记录用户操作(如文件创建、删除、权限修改),便于安全审计(日志路径通常为/var/log/hadoop/hdfs/audit.log)。四、性能优化
dfs.blocksize(数据块大小,默认128MB,大文件可调整为256MB提高读取效率)、dfs.replication(副本数,默认3,可根据存储成本调整为2)、dfs.namenode.handler.count(NameNode处理请求的线程数,默认10,高并发场景可增加至30)。五、数据管理
hdfs dfsadmin -allowSnapshot /path创建快照,hdfs dfs -cp /path/.snapshot/snapshot-name /backup-path恢复)快速备份重要数据;或使用hadoop distcp命令将数据复制到其他HDFS集群(如hadoop distcp hdfs://namenode1:9000/path hdfs://namenode2:9000/backup-path)实现跨集群备份。checksum)机制自动检测数据损坏,可通过hdfs fsck / -delete命令删除损坏的块(谨慎使用,需提前备份);定期运行hdfs balancer命令平衡集群数据分布(使各DataNode存储利用率差异不超过10%),避免数据倾斜。六、故障排查
ping namenode-host)、防火墙是否开放对应端口(firewall-cmd --list-ports)、DataNode进程是否运行(jps查看DataNode进程)。dfs.namenode.name.dir(元数据存储目录)是否存在且权限正确(chown -R hadoop:hadoop /path)、是否有残留的edits或fsimage文件(删除后重新格式化NameNode:hdfs namenode -format)。df -h查看磁盘使用情况,清理无用文件(如/tmp目录下的临时文件、旧日志文件)或扩容DataNode磁盘。