了解Hive失败背后的真正原因

时间:2012-11-14 00:46:57

标签: java jdbc hive

我正在使用JDBC驱动程序在配置单元上运行“describe TABLE_NAME”。它给了我以下错误:

NativeException: java.sql.SQLException: Query returned non-zero code: 9, cause: FAILED:
Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

return code 1并没有告诉我什么。我如何弄清楚底层原因是什么?

3 个答案:

答案 0 :(得分:0)

这很可能是因为您的Hive Metastore设置不正确。 Hive使用RDBMS Metastore来存储有关其表的元数据。这包括表名,模式,分区/分组/排序列,表级统计等。

默认情况下,Hive使用嵌入式derby Metastore,一次只能由一个进程访问。如果你正在使用它,你可能有多个Hive会话打开导致这个问题。

无论如何,我建议你为Hive设置一个独立的Metastore。选择嵌入式德比是因为它在运行测试中的可用性以及开箱即用的优点。但是,在我看来,它不适合生产工作流程。您可以找到有关如何将MySQL配置为Hive Metastore here的说明。

答案 1 :(得分:0)

可能你打开了另一个会话。因为德比只允许每人一次。 你可以检查 -

ps -wwwfu <your id>

终止正在运行hive连接的id。

答案 2 :(得分:0)

这是因为具有您指定名称的表在数据库中不存在。 尝试创建表并再次运行该命令。它会工作。 :)