这是我们的设置 - 我们有Hive在另一台机器上使用MySQL作为Metastore。 我可以启动Hive命令行shell并创建一个表并对其进行描述。 但是当我登录到用作Metastore的其他机器时,我无法在MySQL上看到Hive表的详细信息。
e.g。这是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 Metastore。我使用“Metastore”数据库。但是,如果我想列出表格,我无法看到我在Hive中创建的表格或表格信息。
如何在Metastore中查看Hive表信息?
答案 0 :(得分:15)
首先,找到存储Metastore的MySql数据库。这将在你的hive-site.conf - 连接URL中。然后,一旦连接到MySql,您就可以
use metastore;
show tables;
select * from TBLS; <-- this will give you list of your hive tables
答案 1 :(得分:9)
如果要搜索特定列所属的其他表,则另一个有用的查询:
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
答案 2 :(得分:2)
您可以在MySQL数据库中查询Metastore架构。类似的东西:
mysql> select * from TBLS;
有关如何配置MySQL Metastore以存储Hive元数据的详细信息,并验证并查看存储的元数据here。
答案 3 :(得分:0)
*虽然设置Hadoop服务是任何其他服务(这也是强制性的),但管理员在大多数情况下使用关系数据库来存储hive和oozie等服务的元数据信息。
因此,找到您的hive备份的数据库(mysql,postgresql,sqlserver等),您可以在TBLS表中看到元数据信息。*
升级您的配置单元时,您必须备份这些TBLS。