- 日志收集:
- hdfs的日志收集主要通过log4j日志框架实现。可以在hadoop的配置文件(如hdfs-site.xml)中进行相关配置,以启用或禁用某些日志级别、输出位置等。常见配置参数包括hadoop.root.logger、hadoop.log.dir、hadoop.log.file和hadoop.log.level。
- 日志轮转:
- 使用logrotate进行日志轮转管理,以防止日志文件过大。可以创建一个日志轮换配置文件,并添加到/etc/logrotate.d/目录中。示例配置可能包括每天轮转日志文件、保留7个备份文件,并且压缩旧的日志文件。
- 日志归档:
- HDFS的日志文件默认存储在/var/log/Bigdata/hdfs/目录下,并且可以配置自动归档功能。当日志文件大小超过一定阈值(如100MB)时,会自动压缩归档。归档文件名规则通常遵循原有日志名-yyyy-mm-dd_hh-mm-ss.[编号].log.zip的格式,最多保留最近的若干个压缩文件。
- 日志分析工具:
- elk Stack(Elasticsearch、Logstash、Kibana):这是一个流行的日志分析和可视化工具组合。首先安装elasticsearch、Logstash和Kibana,然后配置Logstash从HDFS收集日志,并将其发送到Elasticsearch,最后使用Kibana创建仪表板和可视化来分析日志数据。
- journalctl:这是centos 7上专有的日志管理工具,可以查看所有日志(包括内核日志和应用日志)。可以使用journalctl命令查看所有日志、内核日志或系统本次启动的日志。
- 自定义脚本和命令行:可以编写脚本定期检查HDFS状态,并将结果记录到日志或通过邮件通知管理员。例如,结合cURL命令和hdfs dfsadmin -report获取并处理信息。
- 日志分析实战技巧:
- NameNode日志分析:关键日志位置在HADOOP_HOME/logs/hadoop-*-namenode-*.log,重点关注WARN和Error级别日志,GC日志单独分析。
- DataNode日志分析:实用命令组合包括实时监控关键错误(tail -F hdfs.log | grep -E “ERROR|WARN”)、统计错误出现频率(awk ‘/ERROR/{print 5}’ hdfs.log | sort | uniq -c | sort -nr)。
- 监控和告警:
通过上述步骤,可以有效地在CentOS系统中配置和管理HDFS日志,确保系统的稳定运行和安全性。