[ https://issues.apache.org/jira/browse/YARN-10284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Szilard Nemeth updated YARN-10284: ---------------------------------- Fix Version/s: 3.3.1 > Add lazy initialization of LogAggregationFileControllerFactory in LogServlet > ---------------------------------------------------------------------------- > > Key: YARN-10284 > URL: https://issues.apache.org/jira/browse/YARN-10284 > Project: Hadoop YARN > Issue Type: Sub-task > Components: log-aggregation, yarn > Affects Versions: 3.3.0 > Reporter: Adam Antal > Assignee: Adam Antal > Priority: Major > Fix For: 3.4.0, 3.3.1 > > Attachments: YARN-10284.001.patch, YARN-10284.002.patch, > YARN-10284.003.patch, YARN-10284.004.patch, YARN-10284.branch-3.3.001.patch > > > Suppose the {{mapred}} user has no access to the remote folder. Pinging the > JHS if it's online in every few seconds will produce the following entry in > the log: > {noformat} > 2020-05-19 00:17:20,331 WARN > org.apache.hadoop.yarn.logaggregation.filecontroller.ifile.LogAggregationIndexedFileController: > Unable to determine if the filesystem supports append operation > java.nio.file.AccessDeniedException: test-bucket: > org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: There is no mapped role > for the group(s) associated with the authenticated user. (user: mapred) > at > org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:204) > [...] > at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:513) > at > org.apache.hadoop.yarn.logaggregation.filecontroller.ifile.LogAggregationIndexedFileController.getRollOverLogMaxSize(LogAggregationIndexedFileController.java:1157) > at > org.apache.hadoop.yarn.logaggregation.filecontroller.ifile.LogAggregationIndexedFileController.initInternal(LogAggregationIndexedFileController.java:149) > at > org.apache.hadoop.yarn.logaggregation.filecontroller.LogAggregationFileController.initialize(LogAggregationFileController.java:135) > at > org.apache.hadoop.yarn.logaggregation.filecontroller.LogAggregationFileControllerFactory.<init>(LogAggregationFileControllerFactory.java:139) > at > org.apache.hadoop.yarn.server.webapp.LogServlet.<init>(LogServlet.java:66) > at > org.apache.hadoop.mapreduce.v2.hs.webapp.HsWebServices.<init>(HsWebServices.java:99) > at > org.apache.hadoop.mapreduce.v2.hs.webapp.HsWebServices$$FastClassByGuice$$1eb8d5d6.newInstance(<generated>) > at > com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) > [...] > at > org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) > at java.lang.Thread.run(Thread.java:748) > {noformat} > We should only create the {{LogAggregationFactory}} instance when we actually > need it, not every time the {{LogServlet}} object is instantiated (so > definitely not in the constructor). In this way we prevent pressure on the > S3A auth side, especially if the authentication request is a costly operation. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org