当我执行时:
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 运行良好...我使用了嵌入式元存储。
任何想法如何解决这一问题?
谢谢,
迪迪
根据日志,您似乎遇到了以下异常:
13/04/22 18:34:44 信息 hive.HiveImport:线程“main”中出现异常 java.lang.NoSuchMethodError:org.apache.thrift.EncodingUtils.setBit(BIZ)B
我之前在用户使用“不兼容”版本的 HBase 和 Hive 时遇到过这个问题。不兼容性通常可能存在于多个级别上,但这一特殊级别是当 HBase 和 Hive 使用不同的 thrift 版本时。由于 Sqoop 将 HBase 和 Hive jar 添加到类路径中,因此只有一个 thrift 版本可以处于活动状态,因此“第二个”工具(通常是 hive)无法正常工作。
您是否有机会在执行 Sqoop 的机器上同时安装了 HBase 和 Hive?如果是这样,您可以检查每个项目正在使用的 Thrift 版本吗?只需搜索“*thrift*.jar”即可。如果两个问题的答案都是肯定的,那么您可能会将 HBASE_HOME 设置为不存在的内容,以强制 Sqoop 不加载 HBase 的 thrift 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)