需要写访问的配置单元外部表

qpgpyjmq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(342)

我正在尝试将存储在hdfs(textfile)上的数据集加载到配置单元中进行分析。我正在使用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有关的问题。似乎还没有解决。

lf3rwulv

lf3rwulv1#

我没有办法解决这个问题,但作为一个解决办法,我发现 CREATE TEMPORARY EXTERNAL TABLE 在没有写权限的情况下工作,不同之处在于表(而不是底层数据)将在会话后消失。

xhv8bpkk

xhv8bpkk2#

部分回答了我自己的问题:
事实上,在这个时刻,Hive似乎无法解决这个问题。但这里有一个有趣的事实:hive不需要对文件本身的写访问,只需要对文件夹的写访问。例如,您可以拥有一个具有权限的文件夹 777 ,但其中由配置单元访问的文件可以保持只读,例如。 644 .

mf98qq94

mf98qq943#

如果需要对hdfs文件进行写访问,请提供hadoop dfs-chmod 777/文件夹名
这意味着您将授予对该特定文件的所有访问权限。

相关问题