我在配置单元中有许多表,怀疑这些表的大小导致了集群上的空间问题。有没有办法一次检查Hive表的大小?如果是,怎么做?我们可以使用tblproperty或tbldescription。但它对一张table很有用。为每个表运行相同的命令是乏味的。我正在寻找一种方法来运行命令,并获得所有必需的信息。输出应包括以下字段:数据库名称:表名称:totalsize:numfiles:numpartitions:numrows:rawdatasize:p.s:上一种方法适用于一个表。需要帮忙吗?
dbf7pr2w1#
据我所知,没有一个命令可以实现你所期待的结果。您可以编写自定义脚本获取数据库列表 hive -e "SHOW DATABASES" > db_list_file 遍历数据库列表以获取相应数据库中的所有表 hive -e "SHOW TABLES" > table_list_file 跑 DESCRIBE EXTENDED ${db}.${tble} 在所有表上,解析输出以获取表的路径如果所有文件都是hdfs格式的,那么您可以得到文件的大小 hdfs dfs -du -s <list of hdfs files> 希望这有帮助
hive -e "SHOW DATABASES" > db_list_file
hive -e "SHOW TABLES" > table_list_file
DESCRIBE EXTENDED ${db}.${tble}
hdfs dfs -du -s <list of hdfs files>
1条答案
按热度按时间dbf7pr2w1#
据我所知,没有一个命令可以实现你所期待的结果。
您可以编写自定义脚本
获取数据库列表
hive -e "SHOW DATABASES" > db_list_file
遍历数据库列表以获取相应数据库中的所有表hive -e "SHOW TABLES" > table_list_file
跑DESCRIBE EXTENDED ${db}.${tble}
在所有表上,解析输出以获取表的路径如果所有文件都是hdfs格式的,那么您可以得到文件的大小
hdfs dfs -du -s <list of hdfs files>
希望这有帮助