2014-01-20 83 views
4

我是Hadoop和Hive世界的新手。Hive沒有顯示錶格

我有一個奇怪的問題。當我正在處理蜂巢提示。我創建了幾張桌子,配置單元顯示這些桌子。

退出Hive會話後,我再次啓動Hive終端「show tables;」沒有顯示任何表格!我可以在HDFS的'/ user/hive/warehouse'中看到表格。

我在做什麼錯。你能幫我解決這個問題嗎?

+0

您可以發佈您的Metastore配置嗎? –

+0

我是Hadoop和Hive的新手。你能告訴我該怎麼做,或者我可以找到那個? – Bhagwant

+0

似乎你正在使用默認德比作爲metastore(因爲你是新的,如果我的猜測是正確的,你沒有觸及hive-site.xml我猜),請發佈錯誤或例外你得到(我的意思是查詢顯示的狀態) –

回答

6

BalduZ是對的。設置這個在$ HIVE_HOME/conf目錄/蜂房的site.xml

屬性名= javax.jdo.option.ConnectionURL

屬性值=的jdbc:德比:;的databaseName = /家庭/ youruser/hive_metadata/metastore_db; create = true

下一次您可以從任何目錄位置運行配置單元。這將解決您的問題。

+0

嗨,你沒有安裝derby achivev? – larry

+0

帶有配置單元包的默認數據庫只有德比。無需將其單獨安裝。設置上面的屬性告訴配置單元,使用embedded-derby,指向特定的位置(/home.yourusername/hive_metadata/metastore_db)來存儲derby-meta文件。如果沒有指定 - @Balduz提到的問題將發生 –

+0

哇,我想我做了非常愚蠢的工作,我獨立安裝了德比並啓動了服務。 – larry

4

我假設你使用的是默認配置,所以問題在於你調用配置單元開始工作的地方,因爲你需要從同一個目錄調用它才能看到你在前一個配置單元會話中創建的表。

例如,如果您在~/test/hive中調用配置單元並創建一些表格,並且下次使用配置單元時從~/test開始配置,則不會看到之前創建的表格。最簡單的解決方案是始終從同一目錄啓動配置單元。

但是,更好的解決方案是配置配置單元,以便使用像MySQL這樣的數據庫作爲Metastore。你可以找到如何做到這一點here