2009-07-17 76 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驱动程序。