温馨提示×

Linux下Hadoop的日志管理怎么做

小樊
43
2025-11-30 19:52:56
栏目: 智能运维

Linux下Hadoop日志管理实操指南

一 日志分类与存放路径

  • 系统服务日志:包括 HDFS(NameNode、DataNode)YARN(ResourceManager、NodeManager),默认位于 $HADOOP_HOME/logs,常见命名如:hadoop--namenode-.logyarn--resourcemanager-.log。这些日志用于定位守护进程启动、运行与异常问题。
  • 作业与容器日志:MapReduce/Spark on YARN 的 ApplicationMaster 与 Container 日志 默认分散在各节点的本地 $HADOOP_HOME/logs 中;启用日志聚合后,作业运行完成后会汇总到 HDFS,便于统一检索与留存。
  • 历史作业日志:由 MapReduce JobHistory Server 提供查询能力,通常访问 19888 端口查看历史任务详情与日志入口。

二 查看与检索日志

  • 本地实时查看与检索:
    • 实时跟踪:tail -f $HADOOP_HOME/logs/yarn--resourcemanager-.log
    • 关键字过滤:grep -n “ERROR|Exception” $HADOOP_HOME/logs/hadoop--namenode-.log
    • 大文件分页:less $HADOOP_HOME/logs/hadoop--datanode-.log(/ 搜索,q 退出)
  • Web 与命令行聚合查看:
    • ResourceManager:8088 查看应用列表与日志入口
    • JobHistory:19888 查看历史作业与日志
    • 聚合日志拉取:yarn logs -applicationId application_XXXX_XXXX
  • 系统级服务日志(如使用 systemd 管理 Hadoop 进程):journalctl -u hadoop-.service(按时间、优先级筛选)

三 配置与轮转

  • 日志目录与级别:在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中设置 HADOOP_LOG_DIR,在 $HADOOP_HOME/etc/hadoop/log4j.properties 中配置 log4j.rootLogger 与各类 RollingFileAppender(如 MaxFileSize、MaxBackupIndex)以控制滚动与保留数量。
  • 使用 logrotate 做系统级轮转(推荐对 $HADOOP_LOG_DIR 统一托管):
    • 示例(/etc/logrotate.d/hadoop):
      • /var/log/hadoop/.log { daily rotate 7 compress missingok notifempty }
    • 含义:按天轮转、保留 7 份、压缩旧日志、目录缺失不报错、空文件不轮转。
  • 日志聚合(YARN):在 yarn-site.xml 启用并配置保留期,作业完成后日志自动上传 HDFS,便于集中查询与生命周期管理。
  • 历史服务器(MapReduce):在 mapred-site.xml 配置 JobHistory Server 地址与 done/intermediate-done 目录,启动 historyserver 后在 19888 查询历史作业日志。

四 清理与生命周期策略

  • 本地日志清理脚本示例(保留最近 7 天,先压缩再删除 30 天前):
    • 压缩 7 天前:find $HADOOP_LOG_DIR -type f -name ‘*.log’ -mtime +7 -exec gzip {} ;
    • 删除 30 天前:find $HADOOP_LOG_DIR -type f -name ‘*.log.gz’ -mtime +30 -delete
  • 聚合日志保留:通过 yarn.log-aggregation.retain-seconds 设置 HDFS 上的保留时长(如 604800 秒=7 天),避免无限增长。
  • 权限与安全:对日志目录设置合适的 属主/属组权限(如 640),必要时通过 SELinux 设置正确的上下文,限制非授权访问。

五 集中化与可视化

  • 采集与传输:使用 Flume/Logstash 采集各节点日志并发送到 ElasticsearchHDFS,实现统一存储与检索。
  • 存储与格式:长期归档可落 HDFS,按分析需求选择 JSON/Parquet/ORC 等列式或结构化格式。
  • 检索与展示:使用 ELK(Elasticsearch+Logstash+Kibana)Solr 构建检索与仪表盘;结合 GrafanaPrometheus 做指标可视化与告警联动。

0