You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Chunliang Lu (JIRA)" <ji...@apache.org> on 2012/11/17 21:08:12 UTC

[jira] [Updated] (HADOOP-9059) hadoop-daemons.sh script constraint that all the nodes should use the same installation path.

     [ https://issues.apache.org/jira/browse/HADOOP-9059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chunliang Lu updated HADOOP-9059:
---------------------------------

    Description: 
To run command on all slave hosts, the bin/hadoop-daemons.sh will call the bin/slaves.sh at last line:
{code}
exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
{code}

where slaves.sh will call ssh and pass the `cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"` part to the slaves. In bash, the $HADOOP_HOME $bin, and $HADOOP_CONF_DIR will be replaced as current settings on the master, which means that this constraints that all the slave nodes need to share the same path setting as master node. This is not reasonable. In my setting, the cluster has a shared NFS, and I would like to use different configuration files for different machines. I know this is not a recommended way to manage clusters, but I just have no choice. I think other people may face the same problem. How about replace it like following and allow different configuration for master and slaves?

{code}
exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd '$HADOOP_PREFIX' \; "bin/hadoop-daemon.sh" "$@"
{code}


  was:
To run command on all slave hosts, the bin/hadoop-daemons.sh will call the bin/slaves.sh at last line:
{code}
exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
{code}

where slaves.sh will call ssh and pass the `cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"` part to the slaves. In bash, the $HADOOP_HOME $bin, and $HADOOP_CONF_DIR will be replaced as current settings on the master, which means that this constraints that all the slave nodes need to share the same path setting as master node. This is not reasonable. In my setting, the cluster has a shared NFS, and I would like to use different configuration files for different machines. I know this is not a recommended way to manage clusters, but I just have no choice. I think other people may face the same problem. How about replace it like following and allow different configuration for master and slaves?

{code}
cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
{code}

    
> hadoop-daemons.sh script constraint that all the nodes should use the same installation path.
> ---------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-9059
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9059
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: bin
>    Affects Versions: 1.0.4
>         Environment: Linux
>            Reporter: Chunliang Lu
>            Priority: Critical
>   Original Estimate: 10m
>  Remaining Estimate: 10m
>
> To run command on all slave hosts, the bin/hadoop-daemons.sh will call the bin/slaves.sh at last line:
> {code}
> exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
> {code}
> where slaves.sh will call ssh and pass the `cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"` part to the slaves. In bash, the $HADOOP_HOME $bin, and $HADOOP_CONF_DIR will be replaced as current settings on the master, which means that this constraints that all the slave nodes need to share the same path setting as master node. This is not reasonable. In my setting, the cluster has a shared NFS, and I would like to use different configuration files for different machines. I know this is not a recommended way to manage clusters, but I just have no choice. I think other people may face the same problem. How about replace it like following and allow different configuration for master and slaves?
> {code}
> exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd '$HADOOP_PREFIX' \; "bin/hadoop-daemon.sh" "$@"
> {code}

--
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