2016-02-26 89 views
25

我試圖在樹莓派2上安裝配置單元。我通過解壓縮壓縮的Hive包安裝了Hive,並在我創建的hduser用戶組下手動配置了$ HADOOP_HOME和$ HIVE_HOME。當運行蜂巢,我得到了以下錯誤消息: 蜂巢Hive安裝問題:Hive Metastore數據庫未初始化

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)

於是我就命令在上面的錯誤信息提示: schematool -dbType德比-initSchema 我得到的錯誤信息:

Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! * schemaTool failed *

似乎沒有任何有用的信息,當我嘗試谷歌此錯誤在線。有關Hive如何與德比合作的任何幫助或任何解釋,我們將不勝感激!

+0

你有沒有想過解決這個問題? – Newtopian

回答

9

我遇到過類似的問題,這是我固定通過刪除Derby數據庫文件rm -Rf $HIVE_HOME/metastore_db

要知道,這將完全刪除您的架構!

清理舊模式後,我可以重新初始化有:

$HIVE_HOME/bin/schematool -initSchema -dbType derby 

它可能從那裏你叫蜂巢不同,嘗試去到您的蜂巢的安裝目錄,然後運行./bin/hive

+0

你有沒有其他建議我試過這個並得到相同的模式工具失敗的錯誤,如上 – Ronan

+0

在我的情況下,數據庫是mysql.Thank你這麼多 –

91

安裝配置單元后,如果您所做的第一件事是運行配置單元,配置單元嘗試創建/初始化metastore_db,但顯然可能無法正確執行。對初次運行,也許你看到你的錯誤:

Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql) 

運行蜂巢,即使失敗了,創造了從中運行蜂巢的目錄metastore_db目錄:

ubuntu15-laptop: ~ $>ls -l |grep meta 
drwxrwxr-x 5 testuser testuser 4096 Apr 14 12:44 metastore_db 

所以,當你再試運行

ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby 

Metastore已經存在,但不是完整的形式。

Soooooo答案是:

  1. 在運行首次蜂巢,運行

    schematool -initSchema -dbType德比

  2. 如果您已經運行蜂巢,然後試着initSchema並且失敗:

    mv metastore_db metastore_db。TMP

  3. 重新運行

    schematool -initSchema -dbType德比

  4. 運行蜂巢再次

**另外值得注意的:如果你更改目錄中,metastore_db上述億韓元創造」找不到!我確信有一個很好的理由,我還不知道,因爲我今天真的第一次嘗試使用蜂巢。唉唉這裏的一對這樣的信息:metastore_db創建的地方我跑蜂巢

+1

thnx!這節省了很多時間。 –

+1

謝謝你救了我 – Suresh

+1

謝謝ssso多!! –

9

我安裝蜂箱與自制(MacOS的)位於/ usr /本地/庫/蜂巢和AFER運行 schematool -dbType derby -initSchema我收到以下錯誤信息:

啓動將Metastore架構初始化爲2.0.0 初始化腳本hive-schema-2.0.0.derby.sql 錯誤:FUNCTION'NUCLEUS_ASCII'已經存在。 (state = X0Y68,code = 30000) org.apache.hadoop.hive.metastore.HiveMetaException:模式初始化失敗! Metastore狀態將不一致!

但是,我找不到你的安裝路徑或者metastore_db或metastore_db.tmp文件夾,所以我嘗試:

  1. find /usr/ -name hive-schema-2.0.0.derby.sql
  2. vi /usr/local/Cellar/hive/2.0.1/libexec/scripts/metastore/upgrade/derby/hive-schema-2.0.0.derby.sql
  3. 註釋 'NUCLEUS_ASCII' 功能和 'NUCLEUS_MATCHES'功能
  4. rerun schematool -dbType derby -initSchema,那麼一切順利!

希望這有助於某人。

+0

這是一個很好的答案。如何使用它來我的問題在這裏:http://stackoverflow.com/questions/43947930/unable-to-initialize-hive-with-derby-from-brew-install – javadba

+0

這是一個偉大的!節省了時間 – Ankita