1. 日志聚合配置与管理
日志聚合是集中管理分布式集群日志的关键手段,可将所有节点的Container日志汇总到ResourceManager所在节点的HDFS目录,避免单节点日志分散问题。需在yarn-site.xml中配置以下参数:
yarn.log-aggregation-enable:设置为true以启用日志聚合功能;yarn.log-aggregation.retain-seconds:定义日志保留时间(如172800秒即2天),超时日志将自动清理;yarn.nodemanager.remote-app-log-dir:指定HDFS中日志聚合的目标目录(如/tmp/logs);yarn.nodemanager.remote-app-log-dir-suffix:日志子目录后缀(如logs)。2. 基于命令行的日志查看与检索
yarn logs -applicationId <application_id>命令可直接获取指定应用的合并日志(包含Container输出、ApplicationMaster日志等),无需手动遍历HDFS目录;hdfs dfs -cat /path/to/logs/*命令查看HDFS中存储的聚合日志内容(如/tmp/logs目录下的日志文件);grep、tail等命令快速定位关键信息,例如grep "ERROR" /var/log/syslog筛选系统日志中的错误信息,tail -f /var/log/syslog实时跟踪日志更新。3. 日志轮转优化(避免日志膨胀)
Hadoop系统服务(如NameNode、DataNode)的默认日志轮转基于文件大小(如达到128MB时切割),可通过修改环境变量调整轮转策略:
hadoop-env.sh、yarn-env.sh等脚本,将HADOOP_ROOT_LOGGER设置为INFO,DRFA(开启Daily Rolling File Appender),并配置log4j.properties中的DatePattern为.yyyy-MM-dd,实现日志按天分割;export HADOOP_ROOT_LOGGER=INFO,DRFA,并在log4j.properties中添加log4j.appender.DRFA.DatePattern=.yyyy-MM-dd,使日志文件按日期命名(如yarn-resourcemanager.log.2025-11-07)。4. 日志清理策略
retain-seconds参数自动删除过期日志;或在logrotate配置文件中添加Hadoop日志规则(如/var/log/hadoop/*.log),设置rotate 7(保留7天)、compress(压缩旧日志)等参数;find /var/log/hadoop -name "*.log" -mtime +7 -exec rm -f {} \;),并通过cron定时任务(如每天凌晨2点执行)自动化。5. 日志分析与可视化
http://resourcemanager-host:8088)查看应用运行状态及日志摘要;通过Job History Server Web UI(默认http://jobhistory-host:19888)查看已完成作业的详细日志;6. 日志安全与审计
log4j.properties配置HDFS审计日志,例如添加log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=INFO,DRFAAUDIT,并设置DRFAAUDIT appender将审计日志输出到hdfs-audit.log文件;chmod、chown命令限制日志文件访问权限(如chmod 640 /var/log/hadoop/*.log、chown root:hadoop /var/log/hadoop/*.log),防止未授权用户篡改或删除日志。