You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Tarun Parimi (JIRA)" <ji...@apache.org> on 2018/08/06 08:34:00 UTC
[jira] [Commented] (YARN-8627) EntityGroupFSTimelineStore hdfs done
directory keeps on accumulating
[ https://issues.apache.org/jira/browse/YARN-8627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16569873#comment-16569873 ]
Tarun Parimi commented on YARN-8627:
------------------------------------
On further analysis, I found that this error occurs for application directories which themselves have another application directory such as /ats/done/1500089190015/0000/017/application_1500089190015_17219/application_1500089190015_17219. In audit logs I see that ats tries to list the folder after deleting it, which causes the error.
{code:java}
19:35:45,944 INFO FSNamesystem.audit: allowed=true ugi=yarn/rm-user@EXAMPLE.COM (auth:KERBEROS) ip=/x.x.x.x cmd=listStatus src=/ats/done/1500089190015/0000/017/application_1500089190015_17219 dst=null perm=null proto=rpc callerContext=yarn_ats_server_v1_5
19:35:45,945 INFO FSNamesystem.audit: allowed=true ugi=yarn/rm-user@EXAMPLE.COM (auth:KERBEROS) ip=/x.x.x.x cmd=listStatus src=/ats/done/1500089190015/0000/017/application_1500089190015_17219 dst=null perm=null proto=rpc callerContext=yarn_ats_server_v1_5
19:35:45,946 INFO FSNamesystem.audit: allowed=true ugi=yarn/rm-user@EXAMPLE.COM (auth:KERBEROS) ip=/x.x.x.x cmd=listStatus src=/ats/done/1500089190015/0000/017/application_1500089190015_17219/appattempt_1500089190015_17219_000001 dst=null perm=null proto=rpc callerContext=yarn_ats_server_v1_5
19:35:45,947 INFO FSNamesystem.audit: allowed=true ugi=yarn/rm-user@EXAMPLE.COM (auth:KERBEROS) ip=/x.x.x.x cmd=listStatus src=/ats/done/1500089190015/0000/017/application_1500089190015_17219/application_1500089190015_17219 dst=null perm=null proto=rpc callerContext=yarn_ats_server_v1_5
19:35:45,948 INFO FSNamesystem.audit: allowed=true ugi=yarn/rm-user@EXAMPLE.COM (auth:KERBEROS) ip=/x.x.x.x cmd=listStatus src=/ats/done/1500089190015/0000/017/application_1500089190015_17219/application_1500089190015_17219/appattempt_1500089190015_17219_000001 dst=null perm=null proto=rpc callerContext=yarn_ats_server_v1_5
19:35:45,952 INFO FSNamesystem.audit: allowed=true ugi=yarn/rm-user@EXAMPLE.COM (auth:KERBEROS) ip=/x.x.x.x cmd=delete src=/ats/done/1500089190015/0000/017/application_1500089190015_17219 dst=null perm=null proto=rpc callerContext=yarn_ats_server_v1_5
19:35:45,953 INFO FSNamesystem.audit: allowed=true ugi=yarn/rm-user@EXAMPLE.COM (auth:KERBEROS) ip=/x.x.x.x cmd=listStatus src=/ats/done/1500089190015/0000/017/application_1500089190015_17219 dst=null perm=null proto=rpc callerContext=yarn_ats_server_v1_5
{code}
I am not sure how this directory structure got created in the first place. But the cleaner thread should not list a directory after deleting the same.
The {{EntityGroupFSTimelineStore#cleanLogs}} method tries to delete the parent directory {{dirpath}}, while it is iterating over the same dirpath. It should only try to delete its children so as to avoid these issues. Testing a patch which does this in my environment and it seems to fix the issue. Will upload a patch soon after doing further tests.
> EntityGroupFSTimelineStore hdfs done directory keeps on accumulating
> --------------------------------------------------------------------
>
> Key: YARN-8627
> URL: https://issues.apache.org/jira/browse/YARN-8627
> Project: Hadoop YARN
> Issue Type: Bug
> Components: timelineserver
> Affects Versions: 2.8.0
> Reporter: Tarun Parimi
> Assignee: Tarun Parimi
> Priority: Major
>
> The EntityLogCleaner threads exits with the following ERROR every time it runs.
> {code:java}
> 2018-07-18 19:59:39,837 INFO timeline.EntityGroupFSTimelineStore (EntityGroupFSTimelineStore.java:cleanLogs(462)) - Deleting hdfs://namenode/ats/done/1499684568068/0000/018/application_1499684568068_18268
> 2018-07-18 19:59:39,844 INFO timeline.EntityGroupFSTimelineStore (EntityGroupFSTimelineStore.java:cleanLogs(462)) - Deleting hdfs://namenode/ats/done/1499684568068/0000/018/application_1499684568068_18270
> 2018-07-18 19:59:39,848 ERROR timeline.EntityGroupFSTimelineStore (EntityGroupFSTimelineStore.java:run(899)) - Error cleaning files java.io.FileNotFoundException: File hdfs://namenode/ats/done/1499684568068/0000/018/application_1499684568068_18270 does not exist. at org.apache.hadoop.hdfs.DistributedFileSystem$DirListingIterator.<init>(DistributedFileSystem.java:1062) at org.apache.hadoop.hdfs.DistributedFileSystem$DirListingIterator.<init>(DistributedFileSystem.java:1069) at org.apache.hadoop.hdfs.DistributedFileSystem$DirListingIterator.<init>(DistributedFileSystem.java:1040) at org.apache.hadoop.hdfs.DistributedFileSystem$23.doCall(DistributedFileSystem.java:1019) at org.apache.hadoop.hdfs.DistributedFileSystem$23.doCall(DistributedFileSystem.java:1015) at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) at org.apache.hadoop.hdfs.DistributedFileSystem.listStatusIterator(DistributedFileSystem.java:1015) at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore.shouldCleanAppLogDir(EntityGroupFSTimelineStore.java:480)
> {code}
>
> Each time the thread gets scheduled, it is a different folder encountering the error. As a result, the thread is not able to clean all the old done directories, since it stops after this error.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org