Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.23.0, 0.23.1
-
Reviewed
Description
yarn-daemon.sh unconditionnaly sets yarn.root.logger which then prevent any override from happening.
From ./hadoop-mapreduce-project/hadoop-yarn/bin/yarn-daemon.sh:
> export YARN_ROOT_LOGGER="INFO,DRFA"
> export YARN_JHS_LOGGER="INFO,JSA"
and then yarn-daemon.sh will call "$YARN_HOME"/bin/yarn which does the following:
> YARN_OPTS="$YARN_OPTS -Dhadoop.root.logger=${YARN_ROOT_LOGGER:-INFO,console}"
> YARN_OPTS="$YARN_OPTS -Dyarn.root.logger=${YARN_ROOT_LOGGER:-INFO,console}"
This has at least 2 issues:
- I cannot override hadoop.root.logger when using the yarn-daemon.sh script
- I cannot have different values for hadoop.root.logger and yarn.root.logger
I currently see two different ways to proceed forward:
1/ Make the script yarn-daemon.sh only sets a default value for YARN_ROOT_LOGGER if this variable is not defined
2/ Remove the quoted code from yarn-daemon.sh since yarn already does something similar
3/ Entirely remove that chunk and let people define their logging however they want through some properties files (see log4j.properties in the conf directories for instance)
I would also use the variable HADOOP_ROOT_LOGGER for hadoop.root.logger if either option 1/ or 2/ would be taken.
I don't really have any preference toward any of these solutions. What would you recommend? What is the Apache Hadoop way for this matter?
Note: This is probably happening as well for the other daemons, and I will take a look at it once this issue is resolved.