2013-04-22 88 views
3

關閉我的HDFS客戶端,同時HDFS和蜂巢實例正在運行。現在,當我記入Hive時,我無法執行任何DDL任務,例如「節目表」或「描述的tablename」等,這是給我的錯誤,如下失敗:錯誤的元數據:了java.lang.RuntimeException:無法實例org.apache.hadoop.hive.metastore.HiveMetaStoreClient

ERROR exec.Task (SessionState.java:printError(401)) - FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 
org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 

任何人都可以提出什麼,我需要做的就是我的metastore_db而無需重新創建表實例?否則,我必須再次重複創建整個數據庫/模式的工作。

回答

10

我已經解決了這個問題。這是我遵循的步驟:

  1. 轉到$ HIVE_HOME /斌/ metastore_db
  2. 複製db.lck到db.lck1和dbex.lck到dbex.lck1
  3. 刪除從數據庫鎖條目.lck和dbex.lck
  4. 從配置單元外殼以及所有正在運行的HDFS實例註銷
  5. 重新登錄到HDFS和配置單元外殼。如果您運行DDL命令,它可能會再次給你「無法實例HiveMetaStoreClient錯誤」
  6. 現在複製回db.lck1到db.lck和dbex.lck1到dbex.lck
  7. 所有蜂巢外殼註銷和HDFS實例
  8. 重新登錄,你應該看到您的舊錶

注:第5步可能顯得有些怪異,因爲即使刪除鎖條目後,它仍然會給予HiveMetaStoreClient錯誤,但它爲我工作。

優點:你不必重複重新創建整個數據庫的努力。

希望這有助於有人面臨着同樣的錯誤。如果您覺得有用,請投票。由於提前

+0

當我使用配置單元命令提示符時,我無法連接mysql數據庫。只是讓我知道我在做錯了什麼......我正在嘗試連接時遇到同樣的異常。「失敗 - 錯誤 - 在元數據的Java琅RuntimeException的,不能對實例化,組織」。如果你想要特定的文件,那麼我會分享, – 2017-01-22 11:33:00

9

有人告訴我,一般我們得到這個異常,如果我們蜂巢控制檯沒有正確結束。 的修復:

運行JPS命令,尋找 「RunJar」 的過程,並使用 kill -9命令殺死它

1

參見:getting error in hive

你有沒有複製包含JDBC驅動程序的jar您元數據庫到Hive的lib目錄中?

舉例來說,如果你使用MySQL來保存元數據數據庫,你無線本地環路需要

使用mysql-connector-java的5.1.22-bin.jar拷貝到$ HIVE_HOME/lib目錄下。

這爲我解決了同樣的錯誤。

+0

謝謝。這解決了我的問題! – ArjanSchouten 2014-10-09 15:07:10

1

我面臨同樣的問題,並通過啓動Metastore服務來解決它。如果您的計算機重新啓動或停機,有時服務可能會停止。你可以通過運行命令來啓動服務:

登錄爲$HIVE_USER

nohup hive --service metastore>$HIVE_LOG_DIR/hive.out 2>$HIVE_LOG_DIR/hive.log & 
1

我有蜂巢服務器類似的問題,跟着下面的步驟:
1.轉到$ HIVE_HOME /斌/ metastore_db
2.複製db.lck到db.lck1和dbex.lck到dbex.lck1
3.刪除從db.lck鎖條目和從蜂巢殼dbex.lck
4.重新登錄。據工作
感謝

0

我也正面臨着同樣的問題,並想通了,我有兩個蜂房deafult.xml和蜂巢-site.xml中(由我手動創建),

我感動我hive-site.xml到hive-site.xml-template(因爲我不需要這個文件),然後 開始配置單元,工作正常。

乾杯, 阿杰馬勒

1

舉例來說,我使用MySQL來存儲元數據的數據庫,我複製

使用mysql-connector-java的5.1.22-bin.jar到$ HIVE_HOME/lib文件夾

我的錯誤解決

0

我遇到過這個問題,在我的情況下,它是從命令行運行hive命令。

我通過運行kinit命令解決了此問題,因爲我使用的是kerberized配置單元。

kinit -kt <your keytab file location> <kerberos principal> 
相關問題