2017-08-15 15 views

答えて

1

ハイブのデータベースはメタデータストレージです。つまり、テーブルに関する情報を保持し、デフォルトの場所を持っています。テーブルを作成するときにlocationが指定されている場合は、データベース内のテーブルをhdfsに格納することもできます。

show tablesコマンドを使用してデータベース内のすべてのテーブルを確認できます。Hive CLIです。

次に、テーブルごとに、hdfsの位置をdescribe formatted <table name>(やはりHive CLI)としています。

最後は、各テーブルのためにあなたはhdfs dfs -du -s -h /table/location/

私は、データベースのすべてのテーブルのサイズの合計を測定するための単一のコマンドがないと思う使用して、そのサイズを見つけることができます。ただし、上記の手順を自動化するスクリプトを作成するのはかなり簡単です。あなたは完全なデータベースのサイズがあなたの上でこれを実行したい場合は、HDFS

sudo hadoop fs -ls /apps/hive/warehouse 

表示ハイブデータベースのサイズ

sudo hadoop fs -du -s -h /apps/hive/warehouse/{db_name} 
+0

アレックス、お返事ありがとうございます。しかし、私は数十のテーブルを含むことができるデータベース全体を測定する必要があります。 –

+0

@AleksYa私は答えを更新しました:私は、データベースのすべてのテーブルのサイズの合計を測定する単一のコマンドはないと思います。しかし、スクリプトを書くのはかなり簡単です。 –

0

表示ハイブデータベースを:ハイブも使用してbash CLIから呼び出すことができます「倉庫」

hdfs dfs -du -h /apps/hive/warehouse 

このgアイヴスあなたは、倉庫内の各DBのサイズ

あなたは、特定のDBラン内のテーブルの大きたい場合:

hdfs dfs -du -h /apps/hive/warehouse/<db_name> 

実行ウェアハウスを見つけるためハイブ-site.xmlの上の「grepの倉庫を」パス

+0

明示的な 'LOCATION'を持つテーブルでは動作しません。特にEXTERNALテーブル。さらに、 'default'データベースのテーブルは、ルートディレクトリ内にあり、サブディレクトリにはありません。そして、サブディレクトリは途中で '{db_name} .db'です... –

0

hive -e '<hive command>'

関連する問題