Bruno Dumon created OOZIE-3600: ---------------------------------- Summary: LauncherAM yarn syslog empty due to non-zero yarn.app.container.log.filesize Key: OOZIE-3600 URL: https://issues.apache.org/jira/browse/OOZIE-3600 Project: Oozie Issue Type: Bug Components: core Affects Versions: 5.2.0, 5.1.0 Reporter: Bruno Dumon
I noticed that the yarn syslog of the job running a workflow with a java task was empty. I tracked this down to yarn.app.container.log.filesize being set to a non-zero value in JavaActionExecutor#createCommand: {{vargs.add("-D" + YarnConfiguration.YARN_APP_CONTAINER_LOG_SIZE + "=" + 1024 * 1024);}} When this is non-zero, Hadoop's ContainerLogAppender will buffer a tail of log events and write nothing to the actual log file until close() is called on the ContainerLogAppender. However, close() is never called, hence the log stays empty. For this to work, log4j's LogManager.shutdown() should be called. For example, in MapReduce's YarnChild, this is done where it calls TaskLog.syncLogsShutdown(). Oozie should do something similar. But in fact, I don't see why by default only a tail of log events should be written, rather than all of them. So I would set yarn.app.container.log.filesize to 0 by default. As a workaround, I'm passing -Dyarn.app.container.log.filesize=0 via java-opts in the workflow, which overwrites the value. -- This message was sent by Atlassian Jira (v8.3.4#803005)