8

这是我们的设置 - 我们有在另一台机器上使用 MySQL 作为元存储的 Hive。我可以启动 Hive 命令行 shell 并创建一个表并对其进行描述。但是当我登录到使用 MySQL 作为元存储的另一台机器时,我看不到 MySQL 上的 Hive 表详细信息。

例如,这是 hive 命令 -

hive> create table student(name STRING, id INT);
OK
Time taken: 7.464 seconds
hive> describe student;
OK
name    string
id      int
Time taken: 0.408 seconds
hive>

接下来,我登录到安装了 MySQL 的机器,这个 MySQL 用作 Hive 元存储。我使用“元存储”数据库。但是如果我想列出表格,我看不到表格或我在 Hive 中创建的表格信息。

如何在 Metastore 中查看 Hive 表信息?

4

4 回答 4

16

首先,找到 Metastore 存储在哪个 MySql 数据库中。这将在您的 hive-site.conf - 连接 URL 中。然后,一旦您连接到 MySql,您就可以

use metastore; 
show tables; 
select * from TBLS; <-- this will give you list of your hive tables
于 2013-05-24T16:35:26.127 回答
10

如果您想搜索特定列所属的其他表,另一个有用的查询:

SELECT c.column_name, tbl_name, c.comment, c.type_name, c.integer_idx,
 tbl_id, create_time, owner, retention, t.sd_id, tbl_type, input_format, is_compressed, location,
 num_buckets, output_format, serde_id, s.cd_id
FROM TBLS t, SDS s, COLUMNS_V2 c
-- WHERE tbl_name = 'my_table'
WHERE t.SD_ID = s.SD_ID
AND s.cd_id = c.cd_id
AND c.column_name = 'my_col'
order by create_time
于 2014-10-31T19:38:47.637 回答
2

您可以查询 MySQL 数据库中的元存储模式。就像是:

mysql> select * from TBLS;

有关如何配置 MySQL 元存储以存储 Hive 的元数据并验证并在此处查看存储的元数据的更多详细信息。

于 2015-01-09T16:05:47.320 回答
0

*虽然设置Hadoop服务是任何其他服务(这也是强制性的),但管理员在大多数场景中使用关系数据库来存储hive和oozie等服务的元数据信息。

所以,找到你的 hive 备份的数据库(mysql、postgresql、sqlserver 等),你可以在 TBLS 表中看到元数据信息。*

在升级配置单元时,您必须备份这些 TBLS。

于 2017-01-11T06:43:39.647 回答