[ 
https://issues.apache.org/jira/browse/YARN-5877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15679132#comment-15679132
 ] 

Varun Saxena edited comment on YARN-5877 at 11/19/16 11:55 AM:
---------------------------------------------------------------

Is this the right thing to do ?

NM whitelist configuration is used to allow containers to override NM's default 
environment.
Let us assume there is an environment variable DUMMY_ENV. Assume in some 
deployment, for some jobs, its set in the ContainerLaunchContext and for all 
other jobs we want a default which can be set in NM environment.
Before the change in the patch, we could have set DUMMY_ENV in NM whitelist and 
NM would have picked up value for this environment variable from container 
launch context (if available) otherwise taken it from NM environment.
After the change in this patch, NM would keep the value coming from container 
launch context as default and use that only if the environment variable on NM 
is not set.

This is a departure from current behavior. Probably you can argue none of us 
are using it this way but its still a change in behavior.
We have done the same for HADOOP_YARN_HOME, HADOOP_COMMON_HOME, etc. in 
YARN-3853 but these are well known environment variables so probably nobody 
uses them the way I mentioned above. Atleast we do not. So it may be safe to 
use them this way. 

If we were to have a different configuration, we can probably get rid of these 
concerns.

Thoughts ?


was (Author: varun_saxena):
Is this the right thing to do ?

NM whitelist configuration is used to allow containers to override NM's default 
environment.
Let us assume there is an environment variable DUMMY_ENV. Assume in some 
deployment, for some jobs, its set in the ContainerLaunchContext and for all 
other jobs we want a default which can be set in NM environment.
Before the change in the patch, we could have set DUMMY_ENV in NM whitelist and 
NM would have picked up value for this environment variable from container 
launch context (if available) otherwise taken it from NM environment.
After the change in this patch, NM would keep the value coming from container 
launch context as default and use that only if the environment variable on NM 
is not set.

This is a departure from current behavior. Probably you can argue none of us 
are using it this way but its still a change in behavior.
We have done the same for HADOOP_YARN_HOME, HADOOP_COMMON_HOME, etc. in 
YARN-3853 but these are well known environment variables so probably nobody 
uses them the way I mentioned above. So its safe to use them this way. If we 
were to have a different configuration, we can probably get rid of these 
concerns.

Thoughts ?

> Allow all nm-whitelist-env to get overridden during launch
> ----------------------------------------------------------
>
>                 Key: YARN-5877
>                 URL: https://issues.apache.org/jira/browse/YARN-5877
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Bibin A Chundatt
>            Assignee: Bibin A Chundatt
>         Attachments: Dockerfile, YARN-5877.0001.patch, YARN-5877.0002.patch, 
> bootstrap.sh, yarn-site.xml
>
>
> As per the {{yarn.nodemanager.env-whitelist}} for the configured values 
> should  containers may override rather than use NodeManager's default.
> {code}
>   <property>
>     <description>Environment variables that containers may override rather 
> than use NodeManager's default.</description>
>     <name>yarn.nodemanager.env-whitelist</name>
>     
> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME</value>
>   </property>
> {code}
> But only the following containers can override
> {code}
>     whitelist.add(ApplicationConstants.Environment.HADOOP_YARN_HOME.name());
>     whitelist.add(ApplicationConstants.Environment.HADOOP_COMMON_HOME.name());
>     whitelist.add(ApplicationConstants.Environment.HADOOP_HDFS_HOME.name());
>     whitelist.add(ApplicationConstants.Environment.HADOOP_CONF_DIR.name());
>     whitelist.add(ApplicationConstants.Environment.JAVA_HOME.name());
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to