我对YARN很新。我运行了创建日志的oozie作业。
我可以看到带有
的纱线日志yarn logs -applicationId application_123456789_12345678
我想知道如何删除这些日志?我可以删除文件以删除日志吗?
答案 0 :(得分:8)
一旦作业完成,NodeManager将保留$ {yarn.nodemanager.log.retain-seconds}的每个容器的日志,默认为10800秒(3小时),并在它们过期后删除它们。但是如果启用了$ {yarn.log-aggregation-enable},那么NodeManager会立即将所有容器日志连接成一个文件,并将它们上传到$ {yarn.nodemanager.remote-app-log-dir} / $中的HDFS {user.name} / logs /并从本地userlogs目录中删除它们
Documentation表示'yarn.nodemanager.delete.debug-delay-sec':
应用程序完成之后,nodemanager的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>
答案 1 :(得分:1)
没有用于从CLI删除纱线日志的纱线命令。
您可以转到yarn日志目录rm
yarn.nodemanager.log-dirs
,使用Linux /application_${appid}
删除。单个容器日志目录将位于此下面的名为container_{$contid}
的目录中。每个容器目录将包含该容器生成的文件stderr
,stdin
和syslog
。
答案 2 :(得分:0)
delete ${yarn.nodemanager.remote-app-log-dir}/${user}/${application_id}/...