2012-11-14 20 views
2

我正在使用JDBC驅動程序在配置單元上運行「describe TABLE_NAME」。它給了我下面的錯誤:瞭解Hive故障背後的真實原因

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不告訴我非常喜歡。我如何弄清楚其根本原因是什麼?

回答

0

這很可能是因爲您的蜂房Metastore設置不正確。 Hive使用RDBMS元存儲來存儲關於表的元數據。這包括諸如表名,模式,分區/桶/排序柱,表級別統計等。

默認情況下,Hive使用嵌入式德比Metastore,一次只能由一個進程訪問。如果你正在使用它,有可能你有多個Hive打開會話導致這個問題。

無論如何,我建議你爲Hive設置一個獨立的Metastore。嵌入式德比選擇它的可用性在運行測試和一個良好的箱外Metastore。但是,在我看來,這不適合生產工作流程。您可以找到有關如何將MySQL配置爲Hive Metastore here的說明。

+0

我有我的metastore設置正確...這是我遇到問題配置單元后所做的第一件事:) AFAICT有一個JDBC驅動程序中的錯誤。 –

+0

您使用的是什麼版本的Hive?你能否確保你可以使用不同的方法從與Hive相同的機器連接到Metastore? –

0

可能你有另一個sesssion打開。由於德比每人只允許進行一次會話。 你可以檢查 -

ps -wwwfu <your id> 

殺死運行配置單元連接的id。

0

這是因爲具有您指定名稱的表在數據庫中不存在。 嘗試創建表並再次運行該命令。它會工作。 :)