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

Allen Wittenauer edited comment on HADOOP-10996 at 8/22/14 1:33 AM:
--------------------------------------------------------------------

(Source: 
https://issues.apache.org/jira/secure/EditComment!default.jspa?id=12665400&commentId=14106278)

Given this:

{code}
$ export HADOOP_COMMON_HOME=$(pwd)/$(ls -d 
hadoop-common-project/hadoop-common/target/hadoop-common-*/)
$ export HADOOP_HDFS_HOME=$(pwd)/$(ls -d 
hadoop-hdfs-project/hadoop-hdfs/target/hadoop-hdfs-*/)
$ export PATH=$HADOOP_COMMON_HOME/bin:$HADOOP_HDFS_HOME/bin:$PATH
$ hdfs
ERROR: Unable to exec 
(path)target/hadoop-hdfs-3.0.0-SNAPSHOT/bin/../libexec/hadoop-functions.sh.
{code}

How do we make hdfs work properly?

First, what is happening?

The code tries to find where to look for hdfs-config.sh is located.  It does 
this by looking for ../libexec, where it finds it.  It now makes the (false) 
assumption that this must be the one, true libexec dir.  So it now tries to 
fire up hadoop-config.sh and hadoop-functions.sh which fail.

There are a couple of different ways to solve this:

* Look to see if HADOOP_COMMON_HOME is defined and look for 
hadoop-config.sh/hadoop-functions.sh is there as well.
* Throw caution to the wind and see if this stuff is in our current path.
* Recalculate HADOOP_LIBEXEC_DIR in hadoop-config.sh might work too, since 
clearly hdfs found it.
* Do the full gamut of checks for HADOOP_HDFS_HOME, etc, for hdfs-config.sh + 
some of the stuff above.

One sticking point is what happens if hadoop-layout.sh redefines the directory 
structure?  The code is sort of in a catch-22.


was (Author: aw):
(Source: 
https://issues.apache.org/jira/secure/EditComment!default.jspa?id=12665400&commentId=14106278)

Given this:

{code}
$ export HADOOP_COMMON_HOME=$(pwd)/$(ls -d 
hadoop-common-project/hadoop-common/target/hadoop-common-*/)
$ export HADOOP_HDFS_HOME=$(pwd)/$(ls -d 
hadoop-hdfs-project/hadoop-hdfs/target/hadoop-hdfs-*/)
$ export PATH=$HADOOP_COMMON_HOME/bin:$HADOOP_HDFS_HOME/bin:$PATH
$ hdfs
ERROR: Unable to exec 
(path)target/hadoop-hdfs-3.0.0-SNAPSHOT/bin/../libexec/hadoop-functions.sh.
{code}

How do we make hdfs work properly?

First, what is happening?

The code tries to find where to look for hdfs-config.sh is located.  It does 
this by looking for ../libexec, where it finds it.  It now makes the (false) 
assumption that this must be the one, true libexec dir.  So it now tries to 
fire up hadoop-config.sh and hadoop-functions.sh which fail.

There are a couple of different ways to solve this:

* Look to see if HADOOP_COMMON_HOME is defined and look for 
hadoop-config.sh/hadoop-functions.sh is there as well.
* Throw caution to the wind and see if this stuff is in our current path.
* Do the full gamut of checks for HADOOP_HDFS_HOME, etc, for hdfs-config.sh + 
the stuff above.

One sticking point is what happens if hadoop-layout.sh redefines the directory 
structure?  The code is sort of in a catch-22.

> run hdfs, yarn, mapred, etc from target tree
> --------------------------------------------
>
>                 Key: HADOOP-10996
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10996
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: scripts
>    Affects Versions: 3.0.0
>            Reporter: Allen Wittenauer
>
> There is a developer use case for running the shell scripts from the build 
> tree.  What would it take to make it work?



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to