7

当我执行时:

sqoop import --connect jdbc:mysql://localhost/testdb --table test --hive-table test --hive-import -m 1 

我收到以下错误消息:

13/04/21 16:42:50 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 1
    at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:364)
    at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:314)
    at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:226)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:415)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:238)

我试图用谷歌搜索,但没有找到解决方案。我以伪分布式方式在本地设置了 Hadoop。Hive 运行良好......我使用了嵌入式元存储。任何想法如何解决这一问题?谢谢,老爹

4

4 回答 4

10

根据日志,您似乎遇到了以下异常:

13/04/22 18:34:44 信息 hive.HiveImport:线程“主”java.lang.NoSuchMethodError 中的异常:org.apache.thrift.EncodingUtils.setBit(BIZ)B

当用户在“不兼容”版本中使用 HBase 和 Hive 之前,我已经看到过这个问题。不兼容通常可以在多个级别上,但这个特定的一个是当 HBase 和 Hive 使用不同的 thrift 版本时。由于 Sqoop 将 HBase 和 Hive jar 添加到类路径中,因此只有一个节俭版本可以处于活动状态,因此“第二个”工具(通常是 hive)无法正常工作。

您是否有机会在执行 Sqoop 的机器上同时安装了 HBase 和 Hive?如果是这样,您可以检查每个项目正在使用的节俭版本吗?只需搜索“*thrift*.jar”。如果对这两个问题的回答都是肯定的,那么您可能会将 HBASE_HOME 设置为不存在的内容,以强制 Sqoop 不加载 HBase 的 thrift 版本。

于 2013-04-24T03:59:19.737 回答
2

我同意 Jarek Jarcec Cecho 的回答。

另一种解决方法是将libthrift*.jar文件从复制$HIVE_HOME/lib$SQOOP_HOME/lib.

于 2014-10-08T15:38:47.427 回答
0

mysql 表可能存在权限问题,或者您在 hive 库中缺少 mysql 连接器 jar。请分享命令的全部输出

于 2013-04-22T07:28:35.397 回答
0

我遇到了同样的错误,这肯定与 hbase 和 hive 中的 libthrift-0.8.0.jar 和 libthrift-0.9.0.jar 分别有关。所以我只是将我的 HBASE_HOME 指向未知位置并执行我的 bash 。然后就可以了。

但是我在使用 Hive 时遇到的一个问题是我尝试导入的表现在失败了,说表已经退出,但实际上没有。我猜 Metastore db 文件应该已经写好了!所以我需要更改表的名称并重做命令,以防我们不想删除 metastoredb 的整个文件夹。

于 2014-01-09T03:15:42.693 回答