2009-07-17 186 views
-2

我想用實用的JDBC創建表。但是,我無法真正看到我從hive shell創建的表。更糟糕的是,當我從不同目錄訪問配置單元外殼時,我看到數據庫的不同結果。 是否需要配置任何設置?hadoop配置單元問題

在此先感謝。

回答

1

嘗試給Hive用戶列表或IRC頻道發送電子郵件。

1

您可能需要設置中央Hive Metastore(默認情況下,Derby,但它可以是mySQL/Oracle/Postgres)。 Metastore是Hive和HDFS之間的「膠水」。它告訴蜂巢在您的數據文件住在HDFS,它們所包含的數據類型,它們屬於什麼表,等

欲瞭解更多信息,請參閱http://wiki.apache.org/hadoop/HiveDerbyServerMode

0

檢查你的Hadoop日誌。對我來說,這發生在我的hadoop系統安裝不正確時。 namenode無法聯繫其他機器上的datanode等。

0

是的,這是由於Metastore沒有正確設置。 Metastore存儲與您的Hive表相關的元數據(例如表名,表格位置,列名,列類型,桶裝/排序信息,分區信息,SerDe信息等)。

默認Metastore是一個嵌入式Derby數據庫,只能由一個客戶端在任何給定時間使用。對於大多數實際目的而言,這顯然不夠好。與大多數用戶一樣,您應該配置您的Hive安裝以使用不同的Metastore。 MySQL似乎是一個流行的選擇。我使用Cloudera網站上的this link來成功配置我的MySQL Metastore。

3

請確保您每次都從同一目錄運行配置單元,因爲第一次啓動hive CLI時,它會在當前目錄中創建一個metastore derby db。這個德比DB包含配置單元表的元數據。如果您更改目錄,您將擁有非組織的配置單元表的元數據。另外德比DB無法處理多個會話。爲了允許併發Hive訪問,您需要使用真正的數據庫來管理Metastore,而不是使用它附帶的小型derbyDB。您可以爲此下載mysql,並將jdbc連接的配置單元屬性更改爲mysql type 4純java驅動程序。