1

我正在尝试使用 java 中的元存储客户端从配置单元元存储中获取表属性,例如表 db、名称、所有者和 hdfs 位置。我想我可以得到表数据库和名称,但我不知道如何获取所有者和 hdfs 位置之类的东西。可能吗?我已经在文档和互联网上搜索了几个小时,但没有骰子。

4

3 回答 3

3

可能是这样的:

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.html https://hive.apache.org/javadocs/r1.2.2/api /org/apache/hadoop/hive/metastore/api/StorageDescriptor.html

于 2015-11-24T14:44:01.453 回答
0

我在具有 Cloudera CDH 5.1.0 的虚拟机上运行了以下命令

$ hive -e "描述扩展表名"

此命令的输出提供除了 tablename、dbname、owner、createtime、location 之外的信息。您也可以参考以下 CWIKI 链接了解更多详情

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Describe

于 2015-11-24T10:00:21.993 回答
0

如果是分区表,您可以执行以下操作:

描述格式化表分区(partition_name=partition_value)。

它将显示底层 hdfs 路径和表的所有者。

于 2015-11-24T04:07:44.750 回答