sam liu created SQOOP-1165:
------------------------------

             Summary: When import data into Hive, sqoop pick up the jar files 
from $HBASE_HOME/lib, not from $HIVE_HOME/lib
                 Key: SQOOP-1165
                 URL: https://issues.apache.org/jira/browse/SQOOP-1165
             Project: Sqoop
          Issue Type: Bug
          Components: tools
    Affects Versions: 1.4.3
         Environment: RHEL 5.4 x86_64
            Reporter: sam liu


My env includes $HADOOP_HOME, $HBASE_HOME and $HIVE_HOME. But I failed to 
execute command './sqoop import --connect jdbc:db2://hostname:50000/sample 
--username user --password pwd --table STAFF --hive-table staff --hive-import 
--m 1', and it returned exception:
13/08/05 10:33:35 INFO hive.HiveImport: Exception in thread "main" 
java.lang.NoSuchMethodError: org/apache/thrift/EncodingUtils.setBit(BIZ)B
13/08/05 10:33:35 INFO hive.HiveImport:         at 
org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo.setCreateTimeIsSet(PrivilegeGrantInfo.java:245)
13/08/05 10:33:35 INFO hive.HiveImport:         at 
org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo.<init>(PrivilegeGrantInfo.java:163)

I believe the root cause is that: when import data into hive, this command 
leveraged the libthrift-0.8.0.jar under folder $HBASE_HOME/lib, but not use the 
libthrift-0.9.0.jar under folder $HIVE_HOME/lib. This is incorrect, and caused 
the failure of hive import. 

In the $SQOOP_HOME/bin/configure-sqoop file, it will add the classpath of HBASE 
into the classpath of SQOOP, but won't add the classpath of HIVE into classpath 
of SQOOP. The correct way is to add the classpath of HBASE into the classpath 
of SQOOP when the command relates to hbase, but to add the classpath of HIVE 
when the command relates to hive.

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