hadoop历史服务器详解:配置、启动与日志查询
在 YARN 集群中,默认情况下无法通过 ResourceManager Web UI 查看已完成作业的历史日志。历史服务器(JobHistoryServer)的作用是 收集、存储和展示 MapReduce 作业的历史运行日志,帮助用户追溯作业执行详情(如任务耗时、失败原因)。本文将详细解析历史服务器的配置方法、启动流程及日志查询方式。

历史服务器的核心作用
在未配置历史服务器时,YARN 的 ResourceManager Web UI 仅能显示当前运行中的作业,已完成作业的日志无法直接访问。历史服务器解决了以下问题:
- 追溯历史作业:存储已完成作业的配置、统计信息和任务日志;
- 问题排查:通过历史日志分析作业失败原因(如内存溢出、数据倾斜);
- 性能优化:基于历史作业的运行指标(如 Map/Reduce 耗时)优化资源配置。
历史服务器配置步骤
核心配置参数
历史服务器的配置需在 mapred-site.xml 中完成,关键参数如下:
| 配置参数 | 含义 | 默认值 | 推荐配置 |
|---|---|---|---|
mapreduce.jobhistory.address |
历史服务器 RPC 地址(用于接收作业历史数据) | 0.0.0.0:10020 |
保持默认或指定节点(如 hadoop1:10020) |
mapreduce.jobhistory.webapp.address |
历史服务器 Web UI 地址 | 0.0.0.0:19888 |
保持默认或指定节点(如 hadoop1:19888) |
mapreduce.jobhistory.intermediate-done-dir |
作业运行时临时历史日志存储目录(HDFS) | /mr-history/tmp |
保持默认或自定义路径 |
mapreduce.jobhistory.done-dir |
作业完成后历史日志归档目录(HDFS) | /mr-history/done |
保持默认或自定义路径 |
配置文件修改
编辑 $HADOOP_HOME/etc/hadoop/mapred-site.xml,添加以下配置: