【问题标题】:Impala External Table Location/URIImpala 外部表位置/URI
【发布时间】:2017-12-13 03:46:33
【问题描述】:

我正在排除外部(非托管)表上的应用程序问题,该表是通过 Cloudera Impala 使用 CREATE TABLE X LIKE PARQUET 语法创建的。我正在尝试确定包含外部表分区的文件的位置,但难以确定如何执行此操作,或查找描述此内容的文档。

如果我这样做:

   show create table T1;

我看到了 hive 管理的位置,例如:

    LOCATION 'hdfs://nameservice1/user/hive/warehouse/databaseName'

如果我这样做:

    describe formatted T1;

我看到该表实际上是外部的,但它没有提供关于非托管位置的任何见解。

    | Table Type:   | EXTERNAL_TABLE
    | Location:     | hdfs://nameservice1/user/hive/warehouse/databaseName/T1

问题: 如何确定构成此外部表的实际外部文件的位置/URI/父目录?

【问题讨论】:

  • 你应该在创建外部表时提到位置,请注意你提到的位置应该对impala用户有rwx访问权限。
  • 正确。外部表是使用显式外部位置创建的(该表是由另一个应用程序团队创建的 - 不是由我创建的),但该外部位置未在 show create table 命令或 describe formatted 命令中列出。
  • 你能粘贴整个节目创建表的结果吗?并请通知您的应用程序团队在创建表格时提及位置“/路径”。我怀疑他们可能会使用“如果不存在则创建表”来引导您以不同的方式。尝试删除表并使用该位置重新创建它。

标签: sql hadoop cloudera impala


【解决方案1】:

当您使用 impala 或 hive 创建外部表并且您想知道必须放置 HDFS 位置的位置时,例如:

创建外部表 my_db.table_name (列字符串)位置'hdfs_path'

如果不提供这些文件,可能的位置在执行命令和创建表的用户目录下。

更多详情可以看这个链接:

https://www.cloudera.com/documentation/enterprise/5-8-x/topics/impala_create_table.html

希望能帮到你!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多