【问题标题】:Get Table Properties out of Hive using Java API使用 Java API 从 Hive 中获取表属性
【发布时间】:2016-02-26 02:11:03
【问题描述】:

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

【问题讨论】:

  • 谢谢大家。但是,我想使用配置单元元存储客户端,而不是运行描述。我找到了我要找的东西,我完全错过了 Table api。德普。

标签: java api hadoop hive metastore


【解决方案1】:

如果是分区表,可以做一个:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-19
        • 2019-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-29
        相关资源
        最近更新 更多