-2

我正在尝试使用 JDBC 务实地创建表。但是,我真的看不到我从 hive shell 创建的表。更糟糕的是,当我从不同的目录访问 hive shell 时,我看到了不同的数据库结果。我需要配置什么设置吗?

提前致谢。

4

5 回答 5

3

确保每次都从同一个目录运行 hive,因为当你第一次启动 hive CLI 时,它会在当前目录中创建一个 metastore derby db。此 derby DB 包含配置单元表的元数据。如果您更改目录,您将拥有 Hive 表的无组织元数据。此外,Derby DB 无法处理多个会话。为了允许并发 Hive 访问,您需要使用真实的数据库来管理 Metastore,而不是使用它附带的懦弱的小 derbyDB。您可以为此下载 mysql 并将 jdbc 连接的 hive 属性更改为 mysql 类型 4 纯 java 驱动程序。

于 2012-06-15T20:26:19.703 回答
1

您可能需要设置中央 Hive 元存储(默认情况下,Derby,但它可以是 mySQL/Oracle/Postgres)。Metastore 是 Hive 和 HDFS 之间的“粘合剂”。它告诉 Hive 您的数据文件在 HDFS 中的位置、它们包含的数据类型、它们属于哪些表等。

有关详细信息,请参阅http://wiki.apache.org/hadoop/HiveDerbyServerMode

于 2009-08-11T03:49:02.170 回答
1

尝试通过电子邮件发送 Hive 用户列表或 IRC 频道。

于 2009-07-17T17:08:01.397 回答
0

检查您的 hadoop 日志。对我来说,这发生在我的 hadoop 系统设置不正确时。名称节点无法联系其他机器上的数据节点等。

于 2010-07-06T11:33:40.803 回答
0

是的,这是由于 Metastore 没有正确设置。Metastore 存储与您的 Hive 表关联的元数据(例如表名、表位置、列名、列类型、分桶/排序信息、分区信息、SerDe 信息等)。

默认元存储是一个嵌入式 Derby 数据库,在任何给定时间只能由一个客户端使用。对于大多数实际目的而言,这显然不够好。像大多数用户一样,您应该配置您的 Hive 安装以使用不同的元存储。MySQL 似乎是一个流行的选择。我已使用Cloudera 网站上的此链接成功配置了我的 MySQL 元存储。

于 2012-04-26T03:34:12.153 回答