hadoop - 本地目录中的配置单元表列表

标签 hadoop hive

我有一个本地目录,它用于存储配置单元表数据。

我需要列出所有使用本地目录的表。

这些表(托管表)存储在配置单元默认数据库中,该数据库允许将数据存储在其他本地目录中。

我的本​​地目录:/abc/efg/data/

表格数据存储在 123 、 456,789 等子文件夹中

对于 table xyz 位置是/abc/efg/data/123 ,PQR 位置是/abc/efg/data/456 这样。

我正在尝试使用

hive -e "show tables "> All_tables 列出所有表并重定向到一个文件

对于 All_tables 中的每一行(每个表)

hive -e "desc 格式化 $line"| grep '/abc/efg/data/' >> Tables_My_local_dir

但它会导致一些性能问题,因为我在数据库中有 6000 个表。

请帮我列出所有使用本地目录且性能最佳的表。

最佳答案

我假设您希望通过从默认数据库中托管表的 desc 格式化 命令中提取表来列出表及其相应的位置信息。

如果我的理解是正确的,我建议你去查询 Hive 元存储,前提是它是一个外部配置的存储,并且你有必要的权限来获取相同的信息

查询元存储:

SELECT T.TBL_NAME AS TABLE_NAME,S.LOCATION AS LOCATION FROM TBLS T LEFT JOIN SDS S ON T.SD_ID=S.SD_ID WHERE T.TBL_TYPE='MANAGED_TABLE' AND T.DB_ID=1 ;

注意:在查询中,默认数据库的DB_ID为1

输出:

------------+------------------------------------------------------------+
| TABLE_NAME | LOCATION                                                   |
+------------+------------------------------------------------------------+
| sample     | hdfs://********:8020/user/hive/warehouse/sample |
...

.

关于hadoop - 本地目录中的配置单元表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820991/

相关文章:

azure - 将Windows Azure用于MapReduce的优势

java - Hadoop MapReduce作业可实现最高频率

hadoop - 如何在Spark内部设置Hive数据库连接

hadoop - 是否可以通过 Hive QL 获取角色信息?

hadoop - 当我尝试运行任何需要M-R作业的复杂查询并且操作系统(ubuntu 16.4)注销到锁定屏幕时,我的 hive 1.2.1崩溃。

hadoop - 汇总配置单元表中的有序行

hadoop - 在 Pig 中生成任意嵌套的元组?

hadoop - Apache Spark 在本地运行时出现拒绝连接错误

apache-spark - 如何将具有相同/共享分区的HDFS文件 block 放置在同一数据节点上的不同文件/表上

hadoop - 如何将文件夹中包含的所有 jar 添加到配置单元?