HDFS权限问题

在尝试使用Hive加载HDFS文件时遇到权限问题。错误代码20531指向文件读取或删除失败。问题在于HDFS的权限机制和Sticky Bit。HDFS根据客户端进程用户名创建文件,导致不同用户间操作权限受限。当尝试删除具有Sticky Bit的/tmp目录文件时,只有文件所有者能执行此操作,导致Permission denied by sticky bit错误。
摘要由CSDN通过智能技术生成

背景

之前的工作中使用Hive一直都是用的内表,对于外表一直都没有正经研究过,最近偶尔使用了一次,就整出了不小的麻烦,而且发现是跟HDFS权限有关,然而就发现关于HDFS的权限问题理解的还是太少了,所以把问题整理一下。

一,Hive外表加载HDFS文件错误

场景是这样的:首先在Hive中新建一张外表
DROP TABLE IF EXISTS quickstart;
CREATE EXTERNAL TABLE quickstart (a INT, b STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|';

然后试图用load语句把数据加载到这张表:

LOAD DATA LOCAL INPATH '/root/quickstart.txt' OVERWRITE INTO TABLE quickstart;

此时当然是会报错的啦,因为这里的local指的是 hive server所在机器的lcoal,访问方式应该类似于/LOCALWORKSPACE/manual-ut/manual_data/manual_crud_tmp/quickstart.txt这种格式才对。
因为感觉写法比较麻烦,于是决定还是上传到HDFS上好了:

hadoop fs -put /root/quickstart.txt /tmp/quickstart.txt

然后再执行load命令:

LOAD DATA INPATH '/tmp/quickstart.txt' OVERWRITE INTO TABLE quickstart;

上面这条语句给出的错误是:


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值