【问题标题】:Why does the user need write permission on the location of external hive table?为什么用户需要对外部 hive 表位置的写权限?
【发布时间】:2016-09-29 00:58:12
【问题描述】:

在 Hive 中,您可以创建两种表:托管表和外部表

在托管表的情况下,您拥有数据,因此当您删除表时,数据将被删除。

对于外部表,您没有数据的所有权,因此当您删除此类表时,不会删除基础数据。只删除元数据。

现在,最近我观察到您无法在 HDFS 中没有写入(修改)权限的位置创建外部表。我完全无法理解这一点。

用例:您正在处理的数据很大并且是只读的,这是很常见的。那么,要通过 Hive 搅动此类数据,您是否必须将这些庞大的数据复制到您具有写入权限的位置?

请帮忙。

【问题讨论】:

标签: hadoop hive bigdata


【解决方案1】:

虽然删除外部数据确实不会导致删除数据,但这并不意味着外部表是只读的。例如,您应该能够在外部表上执行INSERT OVERWRITE

话虽如此,当您只有读取权限时,绝对可以使用(内部)表,所以我怀疑外部表也是如此。尝试使用具有写入权限的帐户创建表,然后将其与您的常规帐户一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    相关资源
    最近更新 更多