Hadoop 文档

General

Common

HDFS

MapReduce

MapReduce REST APIs

YARN

YARN REST APIs

YARN Service

Submarine

Hadoop Compatible File Systems

Auth

Tools

Reference

Configuration

总览

对于具有大量YARN聚合日志的集群,将它们组合到hadoop归档中以减少小文件的数量,从而减轻NameNode的负担可能会有所帮助。该工具提供了一种简便的方法。作业历史记录服务器和yarn logs命令仍可以读取hadoop归档中的聚合日志。

有关hadoop归档的更多信息,请参阅《Hadoop归档指南》

如何存档日志

用法:映射的归档日志
-force强制重新创建工作目录,如果
                               找到一个现有的。这应该
                               仅当您知道另一个
                               实例当前未运行
-help打印此消息
-maxEligibleApps <n>符合条件的最大应用数量
                               处理(默认值:-1(全部))
-maxTotalLogsSize <兆字节>最大总日志大小(以
                               兆字节)才有资格
                               (默认值:1024)
-memory <megabytes>的内存量(以兆字节为单位)
                               每个容器(默认值:1024)
-minNumberLogFiles <n>所需的最小日志文件数
                               符合资格(默认值:20)
-noProxy指定后,将进行所有处理
                               在用户运行此命令时完成(或
                               YARN用户,如果DefaultContainerExecutor
                               正在使用)。如果未指定,则全部
                               处理将作为用户谁
                               拥有该应用程序;如果用户
                               不允许运行此命令
                               冒充该用户,它将失败
-verbose打印更多详细信息。

该工具仅支持一次在集群上运行一个实例,以防止发生冲突。它通过检查HDFS(默认值:/ tmp / logs / archive-logs-work)中yarn.nodemanager.remote-app-log-dir是否存在名为archive-logs-work 的目录来实现。如果由于某种原因该目录未正确清理,并且该工具拒绝运行,则可以使用-force选项对其进行强制。

-help选项打印出的使用信息。

该工具通过执行以下过程来工作:

  1. 根据以下条件确定合格的应用程序列表:
    • 尚未归档
    • 其聚合状态已成功完成
    • 至少具有-minNumberLogFiles个日志文件
    • 其日志文件大小的总和小于-maxTotalLogsSize兆字节
  2. 如果找到的-maxEligibleApps应用程序以上,则将删除最新的应用程序。下次可以处理它们。
  3. 根据合格的应用程序生成一个shell脚本
  4. 分布式Shell程序使用上述脚本运行。它将与-maxEligibleApps容器一起运行,一个容器用于处理每个应用程序,并具有-memory兆字节的内存。每个容器针对单个应用程序运行hadoop archives命令,并将其聚合日志文件替换为结果存档。

-noProxy选项使工具过程中的一切,谁是目前运行它的用户,或者纱线用户如果DefaultContainerExecutor正在使用中。如果未指定,则所有处理将由拥有该应用程序的用户完成;如果不允许运行此命令的用户模拟该用户,它将失败。如果您希望管理员用户在不启用模拟的情况下处理所有聚合,这将很有用。使用-noProxy,最终的HAR文件将由运行该工具的任何人拥有,而不是最初拥有日志的人拥有。

-verbose选项使工具打印有关它做什么的更多细节。

运行该工具的最终结果是,已处理应用程序的原始聚合日志文件将被包含所有这些日志的hadoop存档替换。