The nodemanager supports a configurable list of environment variables, via yarn.nodemanager.env-whitelist, that will be propagated to the container's environment unless those variables were specified in the container launch context. Unfortunately the handling of these whitelisted variables prevents using delayed variable expansion. For example, if a user shipped their own version of hadoop with their job via the distributed cache and specified:
as part of their job, the variable will be set as the literal string:
rather than having $PWD expand to the container's current directory as it does for any other, non-whitelisted variable being set to the same value.