内容纲要
概要描述
在 TDH 中,Yarn 的 Application 日志默认是保存在对应 Nodemanager 配置目录 yarn.nodemanager.log-dirs
服务器节点上。这就导致如果需要查看对应的 Application 日志,需要先到相关 Nodemanager 上去找,而往往该路径会配置多个目录,但只有其中一个目录有日志,这使得查找日志不是很方便。这种情况下,我们可以配置 Application 日志聚合,把日志聚合到 HDFS 上,直接在 HDFS 上查看。
详细说明
1. 日志聚合配置
配置项:yarn.log-aggregation-enable
值:true
说明:是否开启日志聚合,TDH 中默认为 false,修改为 true
配置项:yarn.nodemanager.remote-app-log-dir
值:/yarn1/var/log/hadoop-yarn/apps
说明:可以自己修改定义,该路径为 HDFS 路径
配置服务,重启 Yarn 后,针对 Yarn 任务,当 Application 完成后,日志将被聚合写到 HDFS 上;HDFS 路径即为 ${yarn.nodemanager.remote-app-log-dir}
2. 聚合日志定期清理
Application 日志聚合到 HDFS 上后,默认是不清理的,时间长了会占用 HDFS 空间。这个时候,可以通过如下配置定期清理。
配置项:yarn.log-aggregation.retain-seconds
值:604800
说明:单位:秒,参数不宜设置过小;建议设置为 7 天左右,根据自身集群磁盘使用量决定保留时间
注意:启用聚合日志定期清理的话,需要保证 Yarn 的 History Server 正常启动。
FAQ 日志聚合失败如何排查
1.首先通过yarn logs -applicationId application_XXX
日志查看是否打印 Log aggregation has not completed or is not enabled
2.检查多个 yarn nodemanager日志,一般会有日志聚合的相关报错,比如下面的 yarn没有hdfs 的global access权限