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

Wei Yan commented on HADOOP-9870:
---------------------------------

[~drankye] I agree with your approach. 
Just one concern: $HADOOP_CLIENT_OPTS tries to wrap all configurations from 
user-side and pass to hadoop command. If we introduce another variable 
$HADOOP_CLIENT_HEAPSIZE, it may complex the original mechanism.

Another possible approach may be:
1. In {{hadoop-env.sh}}, before {{export HADOOP_CLIENT_OPTS="-Xmx512m 
$HADOOP_CLIENT_OPTS"}}, we can check whether $HADOOP_CLIENT_OPTS contains -Xmx. 
If has, ignore the default -Xmx512; otherwise, take the -Xmx512m.
2. In {{hadoop}}, before {{exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS 
"$@"}}, we can check whether $HADOOP_OPTS containers -Xmx. If has, don't 
include $JAVA_HEAP_MAX in the command; otherwise, take the $JAVA_HEAP_MAX.

Let's wait for some comments from other guys.

                
> Mixed configurations for JVM -Xmx in hadoop command
> ---------------------------------------------------
>
>                 Key: HADOOP-9870
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9870
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Wei Yan
>
> When we use hadoop command to launch a class, there are two places setting 
> the -Xmx configuration.
> *1*. The first place is located in file 
> {{hadoop-common-project/hadoop-common/src/main/bin/hadoop}}.
> {code}
> exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
> {code}
> Here $JAVA_HEAP_MAX is configured in hadoop-config.sh 
> ({{hadoop-common-project/hadoop-common/src/main/bin/hadoop-config.sh}}). The 
> default value is "-Xmx1000m".
> *2*. The second place is set with $HADOOP_OPTS in file 
> {{hadoop-common-project/hadoop-common/src/main/bin/hadoop}}.
> {code}
> HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
> {code}
> Here $HADOOP_CLIENT_OPTS is set in hadoop-env.sh 
> ({{hadoop-common-project/hadoop-common/src/main/conf/hadoop-env.sh}})
> {code}
> export HADOOP_CLIENT_OPTS="-Xmx512m $HADOOP_CLIENT_OPTS"
> {code}
> Currently the final default java command looks like:
> {code}java -Xmx1000m .... -Xmx512m CLASS_NAME ARGUMENTS"{code}
> And if users also specify the -Xmx in the $HADOOP_CLIENT_OPTS, there will be 
> three -Xmx configurations. 
> The hadoop setup tutorial only discusses hadoop-env.sh, and it looks that 
> users should not make any change in hadoop-config.sh.
> We should let hadoop smart to choose the right one before launching the java 
> command, instead of leaving for jvm to make the decision.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to