When Oozie launcher(map only mapreduce job) gets scheduled to run on RHEL7 node in a mixed OS environment, it may get failed with below ERROR(stderr section of Oozie launcher logs):
Container: container_e1XX_XXXXXXX_0X_00000X on XXXXXX_XXX_XXXXXX
LogAggregationType: AGGREGATED
===============================================================================================================
LogType:stderr
Log Upload Time:Tue XXXXXXXXXXXX
LogLength:XX
Log Contents:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
/usr/bin/env: bash: No such file or directory
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.impl.MetricsSystemImpl).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
.
Why it failed?
This happens because "/bin" and "/sbin" missing in your $PATH in container launch environment.
$PATH variable gets derived from nodemanager's env and nodemanager get's the env from ambari-agent's /var/lib/ambari-agent/ambari-env.sh.
.
How to fix this?
To fix this, add "/bin" and "/sbin" in /var/lib/ambari-agent/ambari-env.sh, restart ambari-agent followed by nodemanager restart.
.
Note - It may get failed with "ln: command not found" error, please follow the same resolution mentioned above in this case as well.
.
Please comment if you have any feedback/questions/suggestions. Happy Hadooping!!