我正在尝试使用java中的metastore客户机从配置单元metastore中获取表属性,如表db、名称、所有者和hdfs位置。我想我可以获得表数据库和名称,但我不知道如何获取所有者和hdfs位置之类的内容。有可能吗?我已经在医生和互联网上搜索了几个小时了。
hof1towb1#
如果是分区表,可以执行以下操作:描述格式化表分区(partition\u name=partition\u value)。它将显示底层hdfs路径和表的所有者。
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
hof1towb3#
我在拥有cloudera cdh5.1.0的virtualbox上运行了以下命令$hive-e“描述扩展表名”除了tablename、dbname、owner、createtime和location之外,该命令的输出还提供了其他信息。您还可以参考以下cwiki链接了解更多详细信息https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#languagemanualddl-描述
3条答案
按热度按时间hof1towb1#
如果是分区表,可以执行以下操作:
描述格式化表分区(partition\u name=partition\u value)。
它将显示底层hdfs路径和表的所有者。
hkmswyz62#
可能是这样的:
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
hof1towb3#
我在拥有cloudera cdh5.1.0的virtualbox上运行了以下命令
$hive-e“描述扩展表名”
除了tablename、dbname、owner、createtime和location之外,该命令的输出还提供了其他信息。您还可以参考以下cwiki链接了解更多详细信息
https://cwiki.apache.org/confluence/display/hive/languagemanual+ddl#languagemanualddl-描述