背景
yarn的任务结束后, 日志无法查看, Hadoop 3.x之后聚合的目录固定会带上bucket-
, 想看看能否通过配置去掉, 通过看源码发现yarn的新版本兼容了两种目录, 默认就是使用TFile无法, 通过yarn-site配置去除, 不过并不影响聚合日志的查看, 所以不用理会
![](https://img.haomeiwen.com/i18249296/9ab334e1e8b01ff3.png)
更改yarn-site.xml
<!--日志聚合-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>172800</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
注意: 对于原生hadoop3.x聚合后的目录可能和cdh版本或者hadoop2.x的不一样, cdh版本的是/tmp/logs/hdfs/logs/application_1717738622002_0002
, 原生hadoop3.x的默认是/tmp/logs/hdfs/bucket-logs-tfile/0002/application_1717740843781_0002
; 可以通过如下指定bucket-后缀的名称, 加上后则目录为/tmp/logs/hdfs/bucket-custom-logs/xx/xx
<property>
<name>log-aggregation.TFile.remote-app-log-dir-suffix</name>
<value>custom-logs</value>
</property>
新版本的hadoop会兼容上面的两种目录, 所以不影响日志的查看 用yarn logs -applicationId application_1717740843781_0002
查看即可; 环境如果混合了多套hadoop环境, 可用下面命令来指定
- export HADOOP_CONF_DIR=/data/aiops/hadoop/etc/hadoop
- export HADOOP_USER_NAME=hdfs
重启yarn
stop-yarn.sh -> start-yarn.sh
![](https://img.haomeiwen.com/i18249296/320b390126eb0201.png)
源码(兼容了新旧目录)
![](https://img.haomeiwen.com/i18249296/081414fd4505c98e.png)
![](https://img.haomeiwen.com/i18249296/4c775c5df2be5238.png)
网友评论