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)