web-dev-qa-db-ja.com

ハイブ-メタストアで作成されたテーブルを確認するにはどうすればよいですか?

これがセットアップです-別のマシン上のMySQLをメタストアとして使用するHiveがあります。 Hiveコマンドラインシェルを起動し、テーブルを作成して説明することができます。しかし、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で作成したテーブルまたはテーブル情報が表示されません。

メタストアでHiveテーブル情報を確認するにはどうすればよいですか?

8
Sumod

まず、メタストアが保存されているMySqlデータベースを見つけます。これはHive-site.conf-接続URLにあります。次に、MySqlに接続すると、次のことができます。

use metastore; 
show tables; 
select * from TBLS; <-- this will give you list of your Hive tables
15
kgu87

特定の列が属する他のテーブルを検索する場合のもう1つの便利なクエリ:

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
9
Pratik Khadloya

MySQLデータベースのメタストアスキーマをクエリできます。何かのようなもの:

mysql> select * from TBLS;

Hiveのメタデータを保存するようにMySQLメタストアを構成し、保存されたメタデータを確認および確認する方法の詳細 ここ

2
saurzcode

* Hadoopサービスのセットアップは他のサービスでもありますが(これも必須です)、管理者はほとんどのシナリオでリレーショナルデータベースを使用して、Hiveやoozieなどのサービスのメタデータ情報を保存します。

したがって、Hiveがバックアップされているデータベース(mysql、postgresql、sqlserverなど)を見つけてください。メタデータ情報はTBLSテーブルで確認できます。*

Hiveをアップグレードする際は、これらのTBLSのバックアップを取る必要があります。

0