# YARN UI看不了app 日志

## 现象

yarn UI 主页可以进去但是具体的container 日志链接显示如下异常

![](https://3284451249-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LjeI8u-q7td85kti-2n%2Fsync%2F3d844c25003db865ee67ee2c356c49f561e48210.png?generation=1598435124157041\&alt=media)

同时发现正在运行的app 日志可见。

## 猜测

正在运行的app 日志可见，也就是本地日志是有的，通过yarn.nodemanager.log-dirs 配置目录我们也确认了正在运行的app 日志存在\
所以我们猜测就是日志聚合的时候出现问题。

## 分析

参考下图 可以看到日志聚合的过程(<https://blog.csdn.net/Androidlushangderen/article/details/90115624>)

![](https://3284451249-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LjeI8u-q7td85kti-2n%2F-MFUJVe-7Hw9bLN-noev%2F-MFUKKu0fJ-KJ3UFup3_%2Fimage.png?alt=media\&token=7a90641f-d277-405a-8821-64caf3db6a8e)

查看相关聚合配置

当打开yarn.log-aggregation-enable为true时，会启用聚合

如果为false，NodeManager会把日志存储在节点本地(${yarn.nodemanager.log-dirs}/${application\_id})下

yarn.nodemanager.remote-app-log-dir: 这是 NodeManager将日志聚合后存放在HDFS 上的地址.

yarn.nodemanager.remote-app-log-dir-suffix: 日志目录${yarn.nodemanager.remote-app-log-dir}/${user}/${yarn.nodemanager.remote-app-log-dir-suffix}/${application\_id}

yarn.log-aggregation.retain-seconds: 聚合后的日志文件在多久后被删除, 配置成 -1 或者一个负值不会删除yarn.log-aggregation.retain-check-interval-seconds: 多长时间去检查一次哪些聚合日志需要删除.

yarn.log.server.url: 应用结束后NodeManager会将网页访问自动跳转到聚合日志的地址, 指向的是 JobHistory上的地址.\
最终能够确认环境确实打开了日志聚合。

观察一段时间，发现在本地生成的container 日志文件回被删除，但是Hadoop 对应目录无相应数据所以就明确了肯定是聚合过程失败了查看yarn nodemanager 日志(先通过container ID 到rm 主节点查询container 运行到NM，再通过container ID查询相关日志)，而我们是日志聚合，可以直接通过通过关键字： logaggregation来过滤

![](https://3284451249-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LjeI8u-q7td85kti-2n%2Fsync%2F172750195bcb21e6c9a8002cb792cc4d737d2182.png?generation=1598435124839174\&alt=media)

## 异常定位

确认异常跟NameSpace配额 相关\
查询目录对应配额

![](https://3284451249-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LjeI8u-q7td85kti-2n%2Fsync%2F955a9047277582b66edb8733a982d9d9d3de5082.png?generation=1598435126939291\&alt=media)

而其他无问题环境默认为

![](https://3284451249-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LjeI8u-q7td85kti-2n%2Fsync%2F2de5a9fdcef56ec2742e1cc8aa9f911d54cc5385.png?generation=1598435125711884\&alt=media)

因此我们直接取消掉目录对应配额

```
hdfs dfsadmin -clrQuota /app-logs
```

yarn UI 日志显示恢复正常
