本文是大数据系列第 6 篇,配置 JobHistoryServer(JHS)以便查看 MapReduce 任务历史,并开启日志聚合功能。
JobHistoryServer 的作用
JHS 记录已完成 MapReduce 任务的详细信息,包括:
- 任务状态(成功/失败)
- 资源使用情况(CPU、内存)
- 各 Task 的执行时间和状态
有了 JHS,不需要任务运行中才能查看,任务完成后随时可以回溯分析。
配置步骤
1. 修改 mapred-site.xml
在 $HADOOP_HOME/etc/hadoop/mapred-site.xml 中添加:
<configuration>
<!-- MapReduce 使用 YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- JobHistoryServer RPC 地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>h121.wzk.icu:10020</value>
</property>
<!-- JobHistoryServer Web UI 地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>h121.wzk.icu:19888</value>
</property>
</configuration>
2. 修改 yarn-site.xml(开启日志聚合)
<configuration>
<!-- ResourceManager 主机 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>h123.wzk.icu</value>
</property>
<!-- Shuffle 服务 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 开启日志聚合 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留 7 天(单位:秒) -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
3. 同步配置到所有节点
xsync $HADOOP_HOME/etc/hadoop/
4. 启动 JobHistoryServer
mr-jobhistory-daemon.sh start historyserver
验证进程:
jps
# 应显示 JobHistoryServer
访问 Web UI
启动后访问:http://h121.wzk.icu:19888/jobhistory
在历史界面可以看到已完成的 MapReduce 任务列表,点击任务可查看:
- Job Summary(资源统计)
- Map/Reduce Tasks 详情
- 每个 Task 的日志(需开启日志聚合)
测试验证
重新运行 WordCount 任务:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar \
wordcount /test/input /wcoutput2
任务完成后,在 JHS Web UI 中即可查看完整执行历史。
下一篇:大数据-07 HDFS 读写原理