需要写访问权限的hive外部表

时间:2017-01-15 08:04:29

标签: hadoop permissions hive hdfs

我正在尝试将存储在HDFS(文本文件)上的数据集加载到配置单元中进行分析。 我正在使用create external table,如下所示:

CREATE EXTERNAL table myTable(field1 STRING...) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE 
LOCATION '/user/myusername/datasetlocation';

这很好用,但它需要写访问到hdfs位置。这是为什么?

一般来说,加载我没有写访问权限的文本数据的正确方法是什么?是否有'只读'外部表类型?

编辑:我在hive上发现了关于这个问题的this issue。它似乎没有得到解决。

3 个答案:

答案 0 :(得分:3)

部分回答我自己的问题:

事实上,此时蜂巢似乎无法解决。但这是一个有趣的事实:hive不需要对文件本身进行写访问,而只需要对文件夹进行写访问。例如,您可以拥有一个具有权限777的文件夹,但其中的文件(由hive访问)可以保持只读,例如644

答案 1 :(得分:1)

如果需要对hdfs文件的写访问权限 hadoop dfs -chmod 777 /文件夹名称

这意味着您授予该特定文件的所有访问权限。

答案 2 :(得分:1)

我没有解决方案,但作为解决方法,我发现了

CREATE TEMPORARY EXTERNAL TABLE

在没有写入权限的情况下工作,区别在于会话后表格会消失。