[英]How to delete yarn logs
我对 YARN 很陌生。 我运行了创建日志的 oozie 作业。
我可以看到纱线日志
yarn logs -applicationId application_123456789_12345678
我想知道如何删除这些日志? 我可以删除文件以删除日志吗?
作业完成后,NodeManager 将为每个容器保留${yarn.nodemanager.log.retain-seconds}
的日志,默认为 10800 秒(3 小时),并在它们过期后删除它们。 但是如果${yarn.log-aggregation-enable}
,那么 NodeManager 会立即将所有容器日志连接到一个文件中,并将它们上传到${yarn.nodemanager.remote-app-log-dir}/${user.name}/logs/<application ID>
HDFS ${yarn.nodemanager.remote-app-log-dir}/${user.name}/logs/<application ID>
并从本地 userlogs 目录中删除它们
文档表明yarn.nodemanager.delete.debug-delay-sec
:
应用程序完成后,节点管理器的 DeletionService 将删除应用程序的本地化文件目录和日志目录之前的秒数。 要诊断 Yarn 应用程序问题,请将此属性的值设置得足够大(例如,设置为 600 = 10 分钟)以允许检查这些目录。 更改属性值后,您必须重新启动 nodemanager 才能使其生效。 Yarn 应用程序的工作目录的根可以使用 yarn.nodemanager.local-dirs 属性进行配置(见下文),而 Yarn 应用程序的日志目录的根可以使用yarn.nodemanager.log-dirs
属性进行配置(另请参见以下)。
您必须配置yarn-default.xml
:
<property>
<description>
Number of seconds after an application finishes before the nodemanager's DeletionService will delete the application's localized file directory and log directory.
</description>
<name>yarn.nodemanager.delete.debug-delay-sec</name>
<value>0</value>
</property>
也许保留秒可能有用:
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>3600</value>
</property>
没有纱线命令可以从 CLI 中删除纱线日志。
您可以使用 Linux rm
删除 yarn 日志目录yarn.nodemanager.log-dirs
/application_${appid}
。 单个容器日志目录将在此之下,在名为container_{$contid}
。 每个容器目录将包含该容器生成的文件stderr
、 stdin
和syslog
。
delete ${yarn.nodemanager.remote-app-log-dir}/${user}/${application_id}/...
如果您需要从远程应用程序日志目录中删除日志,即属性yarn.nodemanager.remote-app-log-dir
提到yarn.nodemanager.remote-app-log-dir
在yarn-site.xml
文件中设置下面提到的属性,请注意此属性仅在您设置了yarn.nodemanager.remote-app-log-dir
(设置 HDFS 路径)和yarn.log-aggregation-enable
(设置为true
) yarn.log-aggregation-enable
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>259200</value>
</property>
在这里,我已设置删除超过 3 天(259200 秒)的日志
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.