2014-01-20 63 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