gpt4 book ai didi

hadoop - 如何根据HDFS位置路径获取配置单元表名称?没有连接到Metastore

转载 作者:行者123 更新时间:2023-12-02 19:51:16 28 4
gpt4 key购买 nike

我知道如何通过Meta-store获取基于HDFS位置的配置单元表名称。例如,如果我需要获取HDFS位置hdfs://xyz.com:8020/user/hive/warehouse/test的表名

  • 我将使用JDBC连接到配置单元metastore。
  • 对表TBLSSDS运行查询,SDS.location将具有表的位置值,并获取TBLS.tbl_name

  • 但是,我需要其他方法来获取表名吗?

    可能吗?

    最佳答案

    Hive Warehouse位置中的目录名称是表名称。

    例如,如果您在Hive中创建表testTable,则会在Hive仓库目录中相应地创建一个具有相同名称的目录。

    此外,如果您在Hive表上创建分区,则每个分区都将映射到testTable目录中的子目录,即<hive_warehouse_path>/testTable/<partition>。特定分区下的所有数据都存储在分区子目录下的文件中。这是配置单元在HDFS上管理其数据的方式。当然,它将表架构存储在Metastore上,但是实际数据如上所述存储在HDFS中。

    在您的问题中,您表示要获取HDFS位置hdfs://xyz.com:8020/user/hive/warehouse/test的表名。在这种情况下,表名称应为test

    也有可能/user/hive/warehouse(它是hive用于存储表数据的默认仓库位置,并且在hive-default.xml中定义)可能已被覆盖,并且hive实际上可能在其仓库中使用其他位置。您应该在您的环境中检查hive-site.xml,以确保其配置单元存储位置。

    关于hadoop - 如何根据HDFS位置路径获取配置单元表名称?没有连接到Metastore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989592/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com