hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5286) bin/hbase's logic of adding Hadoop jar files to the classpath is fragile when presented with split packaged Hadoop 0.23 installation
Date Mon, 20 Feb 2012 23:41:34 GMT

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

Todd Lipcon commented on HBASE-5286:
------------------------------------

What's the advantage of using the hadoop binary to execute HBase instead of doing something
like:
{code}
HADOOP_CLASSPATH=$(hadoop classpath)
{code}

to use its classpath construction logic? This should work in any reasonably recent Hadoop
version.

We'd probably want to add something to Hadoop like {{hadoop librarypath}} to get the native
libs as well, but this seems a little better than actually using the whole hadoop wrapper
script.
                
> bin/hbase's logic of adding Hadoop jar files to the classpath is fragile when presented
with split packaged Hadoop 0.23 installation
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-5286
>                 URL: https://issues.apache.org/jira/browse/HBASE-5286
>             Project: HBase
>          Issue Type: Bug
>          Components: scripts
>    Affects Versions: 0.92.0
>            Reporter: Roman Shaposhnik
>            Assignee: Roman Shaposhnik
>
> Here's the bit from bin/hbase that might need TLC now that Hadoop can be spotted in the
wild in split-package configuration:
> {noformat}
> #If avail, add Hadoop to the CLASSPATH and to the JAVA_LIBRARY_PATH
> if [ ! -z $HADOOP_HOME ]; then
>   HADOOPCPPATH=""
>   if [ -z $HADOOP_CONF_DIR ]; then
>     HADOOPCPPATH=$(append_path "${HADOOPCPPATH}" "${HADOOP_HOME}/conf")
>   else
>     HADOOPCPPATH=$(append_path "${HADOOPCPPATH}" "${HADOOP_CONF_DIR}")
>   fi
>   if [ "`echo ${HADOOP_HOME}/hadoop-core*.jar`" != "${HADOOP_HOME}/hadoop-core*.jar"
] ; then
>     HADOOPCPPATH=$(append_path "${HADOOPCPPATH}" `ls ${HADOOP_HOME}/hadoop-core*.jar
| head -1`)
>   else
>     HADOOPCPPATH=$(append_path "${HADOOPCPPATH}" `ls ${HADOOP_HOME}/hadoop-common*.jar
| head -1`)
>     HADOOPCPPATH=$(append_path "${HADOOPCPPATH}" `ls ${HADOOP_HOME}/hadoop-hdfs*.jar
| head -1`)
>     HADOOPCPPATH=$(append_path "${HADOOPCPPATH}" `ls ${HADOOP_HOME}/hadoop-mapred*.jar
| head -1`)
>   fi
> {noformat}
> There's a couple of issues with the above code:
>    0. HADOOP_HOME is now deprecated in Hadoop 0.23
>    1. the list of jar files added to the class-path should be revised
>    2. we need to figure out a more robust way to get the jar files that are needed to
the classpath (things like hadoop-mapred*.jar tend to match src/test jars as well)
> Better yet, it would be useful to look into whether we can transition HBase's bin/hbase
onto using bin/hadoop as a launcher script instead of direct JAVA invocations (Pig, Hive,
Sqoop and Mahout already do that)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message