Hadoop 如何列出配置单元中所有数据库中所有表中的所有列

Hadoop 如何列出配置单元中所有数据库中所有表中的所有列,hadoop,hive,Hadoop,Hive,我需要列出配置单元中所有数据库中所有表中的所有列 我需要像这样的一排: 显然我可以用 show databases; 对于我可以使用的每个数据库 show tables; 对于每个表格使用: describe table_name; 显然,我可以使用我的Postgress数据库中的Hive_metastore数据库,但我在那里没有访问权限 但是我希望有一个bash脚本,它可以在数据库->表->列之间循环并获取详细信息 我从生成数据库列表开始: hive -e 'show database


我需要列出配置单元中所有数据库中所有表中的所有列

我需要像这样的一排:

显然我可以用

show databases;
对于我可以使用的每个数据库

show tables;
对于每个表格使用:

describe table_name;
显然,我可以使用我的Postgress数据库中的Hive_metastore数据库,但我在那里没有访问权限

但是我希望有一个bash脚本,它可以在数据库->表->列之间循环并获取详细信息

我从生成数据库列表开始:

hive -e 'show databases;' | tee databases.txt
然后我将循环浏览数据库并列出一个表:

#!/bin/bash

for i in `cat databases.txt`;
# w i mamy liste baz
  do
   hive -e 'show tables where database = $i;' | tee tables.txt

done
但我觉得这不是正确的方式。。。 你能帮忙吗

问候

Pawel

替换
显示数据库=$i的表

使用
使用$i;展示表格。您应该使用
tee-a

但我同意,metastore是这里最好的选择

值得一提的是你的UOOC


这不是技术问题,而是组织问题。访问metastore,请他人为您查询,或者请求您可以在本地使用的转储。这完全是技术问题。如何从bash/hive级别访问配置单元列列表。您应该知道这些技术选项。查询元存储是正确的方法。欢迎使用SO。最好对你的答案稍加解释,而不是只给出代码块。
#!/bin/bash

for i in `cat databases.txt`;
# w i mamy liste baz
  do
   hive -e 'show tables where database = $i;' | tee tables.txt

done
for i in `hive -e 'show databases;'`; 
do
    echo $i;
    hive --database=$i -e 'show tables;' | tee -a output.txt;
done