[
https://issues.apache.org/jira/browse/YARN-11578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17770636#comment-17770636
]
ASF GitHub Bot commented on YARN-11578:
---------------------------------------
slfan1989 commented on code in PR #6120:
URL: https://github.com/apache/hadoop/pull/6120#discussion_r1341880623
##########
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/filecontroller/LogAggregationFileController.java:
##########
@@ -429,26 +460,34 @@ public void verifyAndCreateRemoteLogDir() {
+ remoteRootLogDir + "]", e);
}
} else {
- //Check if FS has capability to set/modify permissions
- Path permissionCheckFile = new Path(qualified,
String.format("%s.permission_check",
- RandomStringUtils.randomAlphanumeric(8)));
+ final FsLogPathKey key = new FsLogPathKey(remoteFS.getClass(),
qualified);
+ FileSystem finalRemoteFS = remoteFS;
+ fsSupportsChmod = FS_CHMOD_CACHE.computeIfAbsent(key,
+ k -> checkFsSupportsChmod(finalRemoteFS, remoteRootLogDir,
qualified));
+ }
+ }
+
+ private boolean checkFsSupportsChmod(FileSystem remoteFS, Path logDir, Path
qualified) {
+ //Check if FS has capability to set/modify permissions
+ Path permissionCheckFile = new Path(qualified,
String.format("%s.permission_check",
+ RandomStringUtils.randomAlphanumeric(8)));
+ try {
+ remoteFS.createNewFile(permissionCheckFile);
+ remoteFS.setPermission(permissionCheckFile, new
FsPermission(TLDIR_PERMISSIONS));
+ return true;
+ } catch (UnsupportedOperationException use) {
+ LOG.info("Unable to set permissions for configured filesystem since"
+ + " it does not support this {}", remoteFS.getScheme());
+ } catch (IOException e) {
+ LOG.warn("Failed to check if FileSystem supports permissions on "
Review Comment:
In the log we should use {}.
> Fix performance issue of permission check in verifyAndCreateRemoteLogDir
> ------------------------------------------------------------------------
>
> Key: YARN-11578
> URL: https://issues.apache.org/jira/browse/YARN-11578
> Project: Hadoop YARN
> Issue Type: Bug
> Reporter: Tamas Domok
> Assignee: Tamas Domok
> Priority: Major
> Labels: pull-request-available
>
> YARN-10901 introduced a check to avoid a warn message in NN logs in certain
> situations (when /tmp/logs is not owned by the yarn user), but it adds 3
> NameNode calls (create, setpermission, delete) during log aggregation
> collection, for *every* NM. Meaning, when a YARN job completes, at the YARN
> log aggregation phase this check is done for every job, from every
> NodeManager.
> In 30 minutes 4.2 % of all the NameNode calls were due to this in a cluster.
> "write" calls need a Namesystem writeLock as well, so the impact is bigger.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]