2017-08-15 26 views

回答

1

配置單元中的數據庫是元數據存儲 - 意味着它保存有關表的信息並具有默認位置。如果在創建表格時指定了location,則數據庫中的表格也可以存儲在hdfs的任何位置。

您可以使用show tables命令在Hive CLI中查看數據庫中的所有表。

然後,對於每個表格,您可以使用describe formatted <table name>(同樣在Hive CLI中)在hdfs中找到它的位置。

最後,對於每一個表,你可以使用hdfs dfs -du -s -h /table/location/

我不認爲有一個簡單的命令來衡量一個數據庫的所有表的大小之和發現它的大小。但是,編寫一個自動執行上述步驟的腳本應該相當容易。配置單元也可以從bash CLI使用調用:hive -e '<hive command>'

+0

Alex,謝謝你的回答。但是我需要測量一個可以包含數十個表的整個數據庫。 –

+0

@AleksYa我更新了答案:我不認爲有一個命令來衡量數據庫中所有表的大小總和。但是,編寫腳本應該相當容易 –

0

顯示蜂巢數據庫,如果你希望你的完整數據庫的大小上運行,這對HDFS

sudo hadoop fs -ls /apps/hive/warehouse 

顯示蜂巢數據庫大小

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

不適用於其他地方具有明確的'LOCATION'的表。特別是EXTERNAL表。另外,'default'數據庫的表存儲在根目錄中,而不是存儲在子目錄中。順便說一下,子目錄是「{db_name} .db」。 –

0

您「倉庫」

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

這個g艾夫斯你每個數據庫在你的倉庫大小

如果你想表的特定數據庫運行大小:

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

運行一個「grep的倉庫」在蜂巢-site.xml中找到自己的倉庫路徑