[
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