点一下关注吧!!!非常感谢!!持续更新!!!
点一下关注吧!!!非常感谢!!持续更新!!!
🚀 AI篇持续更新中!(长期更新)
目前2025年06月05日更新到: AI炼丹日志-28 - Audiblez 将你的电子书epub转换为音频mp3 做有声书,持续打造实用AI工具指南!📐🤖
💻 Java篇正式开启!(300篇)
目前2025年06月05日更新到: Java-39 深入浅出 Spring - AOP切面增强 核心概念 通知类型 XML+注解方式 附代码 MyBatis 已完结,Spring 正在火热更新中,深入浅出助你打牢基础!
📊 大数据板块已完成多项干货更新(300篇):
包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈! 目前2025年06月05日更新到: 大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解
👉 点个关注,不迷路!后续还将持续更新更多大模型+数据智能+工程实战内容,敬请期待!
章节内容:
上一节完成:
- HDFS 文件操作
- WordCount 案例 分布式运行
- 查看运行结果
背景介绍
这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。
注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!! 请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!
但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:
- 2C4G 编号 h121
- 2C4G 编号 h122
- 2C2G 编号 h123
请确保上一节内容全部完毕和跑通!!!
目前问题
在YARN中运行的任务生产的日志都看不了,所以如果需要查看程序历史的运行结果,需要配置历史服务器。
历史服务
基本介绍
JobHistoryServer(JHS)是Hadoop MapReduce框架中的一个重要组件,主要用于跟踪和管理已完成的MapReduce作业。它记录了作业的详细历史信息,包括作业的状态、资源使用情况、任务成功或失败等信息。JHS可以帮助用户在作业完成后分析其性能、发现问题和优化作业的执行。JobHistoryServer是Hadoop MapReduce系统中不可或缺的组件,为用户提供了作业历史管理和分析功能。在日常使用中,合理配置和管理JHS,可以帮助用户更好地掌握作业的运行状况,从而更高效地利用集群资源。
JobHistoryServer的作用
- 作业跟踪:JHS负责存储已完成MapReduce作业的历史记录。当一个作业结束时,YARN ResourceManager会将作业的历史数据转移到JHS。用户和管理员可以通过JHS查看所有完成的作业,分析作业执行情况。
- 故障排查:JHS的历史数据可以帮助用户快速定位失败任务的原因。用户可以通过JHS的日志查看失败的任务以及其失败原因,便于排查和解决问题。
- 性能分析:通过访问作业的历史信息,用户可以分析作业的执行时间、资源使用情况等数据,以便对MapReduce作业进行优化。
工作流程
- 作业完成:当MapReduce作业完成时,ApplicationMaster会将作业的输出和状态信息转存到HDFS的日志目录中。
- JHS读取历史数据:JHS会定期扫描指定的HDFS目录,从中读取新的历史文件。
- 数据存储与管理:JHS将历史记录存储在HDFS上,并提供Web UI以便用户可以通过浏览器查看作业历史。
- 用户访问:用户可以通过Web UI访问JHS,查看作业的详细历史记录、任务列表、任务状态等信息。
基本配置
JHS的配置主要在Hadoop配置文件mapred-site.xml中进行。以下是一些关键的配置项:
- mapreduce.jobhistory.address:设置JHS的地址(例如,0.0.0.0:10020)。
- mapreduce.jobhistory.webapp.address:设置JHS的Web UI地址(例如,0.0.0.0:19888)。
- mapreduce.jobhistory.intermediate-done-dir:指定作业完成后的中间文件目录。
- mapreduce.jobhistory.done-dir:指定最终的历史数据目录。
mapred-site
修改 mapred-site.xml,在之前的基础上,添加如下的内容:
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>h121.wzk.icu:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>h121.wzk.icu:19888</value>
</property>
同步配置
通过分发脚本将脚本同步,你也可以手动都配置一下。
rsync-script mapred-site.xml
保证这三台节点的配置一致即可!
- h121
- h122
- h123
启动服务
在 h121 机器上运行
mr-jobhistory-daemon.sh start historyserver
查看结果
jps
访问网页
JHS提供了一个基于Web的用户界面,通过访问http://:19888可以查看作业历史数据。在Web UI中,用户可以:
- 查看完成的作业列表,包括每个作业的ID、名称、开始时间、结束时间和状态。
- 查看每个作业的详细信息,包括Mapper和Reducer的任务详情。
- 了解每个任务的运行时长、失败重试次数等信息,以便深入分析作业的执行情况。
http://h121.wzk.icu:19888/jobhistory
日志聚集
在 h121节点上修改 yarn-site.xml
修改为如下的内容:
vim yarn-site.xml
<!-- 日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://h121.wzk.icu:19888/jobhistory/logs</value>
</property>
修改截图如下:
同步配置
同样的,你也可以使用手动进行同步,只要保证配置是一致的即可
rsync-script yarn-site.xml
重启服务
在 h121 上进行操作:
yarn-daemon.sh stop resourcemanager
yarn-daemon.sh stop nodemanager
mr-jobhistory-daemon.sh stop historyserver
在 h121 上继续操作:
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
mr-jobhistory-daemon.sh start historyserver
测试效果
hdfs dfs -rm -R /wcoutput
运行测试
重新运行我们之前跑的 WordCount 的案例:
cd /opt/servers/hadoop-2.9.2
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /wcinput /wcoutput
查看日志
http://h121.wzk.icu:19888/jobhistory