使用javaapi从配置单元中获取表属性

jvlzgdj9  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(473)

我正在尝试使用java中的metastore客户机从配置单元metastore中获取表属性,如表db、名称、所有者和hdfs位置。我想我可以获得表数据库和名称,但我不知道如何获取所有者和hdfs位置之类的内容。有可能吗?我已经在医生和互联网上搜索了几个小时了。

hof1towb

hof1towb1#

如果是分区表,可以执行以下操作:
描述格式化表分区(partition\u name=partition\u value)。
它将显示底层hdfs路径和表的所有者。

hkmswyz6

hkmswyz62#

可能是这样的:

org.apache.hadoop.hive.metastore.api.Table table=..........;
org.apache.hadoop.hive.metastore.api.StorageDescriptor sd=table.getSd();
String loc=sd.getLocation();
String own=sd.getOwner();

https://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/metastore/api/table.htmlhttpshttp://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/metastore/api/storagedescriptor.html

hof1towb

hof1towb3#

我在拥有cloudera cdh5.1.0的virtualbox上运行了以下命令
$hive-e“描述扩展表名”
除了tablename、dbname、owner、createtime和location之外,该命令的输出还提供了其他信息。您还可以参考以下cwiki链接了解更多详细信息
https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#languagemanualddl-描述

相关问题