MAPREDUCE服务 MRS-MapReduce开源增强特性:MapReduce开源增强特性:History Server优化解决日志小文件问题
MapReduce开源增强特性:History Server优化解决日志小文件问题
运行在Yarn上的作业在执行完成后,NodeManager会通过LogAggregationService把产生的日志收集到HDFS上,并从本地文件系统中删除。日志收集到HDFS上以后由HistoryServer来进行统一的日志管理。LogAggregationService在收集日志时会把container产生的本地日志合并成一个日志文件上传到HDFS,在一定程度上可以减少日志文件的数量。但在规模较大且任务繁忙的集群上,经过长时间的运行,HDFS依然会面临存储的日志文件过多的问题。
以一个20节点的计算场景为例,默认清理周期(15日)内将产生约1800万日志文件,占用NameNode近18G内存空间,同时拖慢HDFS的系统响应速度。
由于收集到HDFS上的日志文件只有读取和删除的需求,因此可以利用Hadoop Archives功能对收集的日志文件目录进行定期归档。
日志归档
在HistoryServer中新增AggregatedLogArchiveService模块,定期检查日志目录中的文件数。在文件数达到设定阈值时,启动归档任务进行日志归档,并在归档完成后删除原日志文件,以减少HDFS上的文件数量。
归档日志清理
由于Hadoop Archives不支持在归档文件中进行删除操作,因此日志清理时需要删除整个归档文件包。通过修改AggregatedLogDeletionService模块,获取归档日志中最新的日志生成时间,若所有日志文件均满足清理条件,则清理该归档日志包。
归档日志浏览
Hadoop Archives支持URI直接访问归档包中的文件内容,因此浏览过程中,当History Server发现原日志文件不存在时,直接将URI重定向到归档文件包中即可访问到已归档的日志文件。
- 本功能通过调用HDFS的Hadoop Archives功能进行日志归档。由于Hadoop Archives归档任务实际上是执行一个MR应用程序,所以在每次执行日志归档任务后,会新增一条MR执行记录。
- 本功能归档的日志来源于日志收集功能,因此只有在日志收集功能开启状态下本功能才会生效。
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MRS优势_什么是MRS_MRS功能
- MapReduce服务_什么是Hive_如何使用Hive
- MapReduce服务_什么是HDFS_HDFS特性
- MapReduce服务_什么是Loader_如何使用Loader
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper
- 什么是Spark_如何使用Spark_Spark的功能是什么
- MapReduce服务_什么是Yarn_如何使用Yarn
- MapReduce服务_什么是Kafka_如何使用Kafka
- MapReduce服务_什么是Hue_如何使用Hue