为什么用户需要对外部hive表位置的写权限?

San*_*iri 6 hadoop hive bigdata

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

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

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

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

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

请帮忙。

Den*_*din 0

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

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