【问题标题】:Can we check size of Hive tables? If so, how?我们可以检查 Hive 表的大小吗?如果是这样,怎么做?
【发布时间】:2020-01-28 14:51:47
【问题描述】:
我在 Hive 中有 许多表,并且怀疑这些表的大小导致集群出现空间问题。有没有办法一次性检查 Hive 表的大小?如果是这样,怎么做?我们可以使用 Tblproperties 或 tbldescription。但它对一张桌子很有用。为每个表运行相同的命令很乏味。我正在寻找一种方法来运行命令并获取所有必需的信息。输出应包括以下字段:
数据库名称:
表名:
总尺寸:
数字文件:
分区数:
行数:
原始数据大小:
PS:以前的方法适用于一个表。
有什么帮助吗?
【问题讨论】:
标签:
hadoop
hive
hql
hiveql
hue
【解决方案1】:
据我所知,没有单一命令可以实现您正在寻找的结果。
您可以编写自定义脚本
- 获取数据库列表
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> 的大小
希望对你有帮助