首页 > 其他 > 详细

hive的load报错Error: EXECUTION FAILED: Task MOVE error HiveException: [Error 20531] Unable to move source hdfs:

时间:2020-07-17 14:36:34      阅读:246      评论:0      收藏:0      [点我收藏+]

hive在进行数据load的时候报错。

 

Error: EXECUTION FAILED: Task MOVE error HiveException: [Error 20531] Unable to move source hdfs://nameservice1/tmp/logs to destination hdfs://nameservice1/inceptor1/user/hive/warehouse/test_0715.db/hive/test_partiton_date/ds=2020-07-18/logs (state=08S01,code=20531)

 

--插入语句

load data inpath /tmp/logs  
into table test_0715.test_partiton_date 
partition(ds=2020-07-19);

 

技术分享图片

 

 

 

Unable to move source hdfs,不能移动,自然就想到了没有权限的问题,果然,一查看发现/tmp/logs这个文件是hdfs的owner,所以hive用户是没有权限移动的。

现在我们需要做的就是,让logs是hive用户拥有。如下所示,切换访问hdfs的用户,把logs上传到了hive权限的目录下。

 

#linux切换访问hdfs用户为hive
export HADOOP_USER_NAME=hive

技术分享图片

 

 

 

注意:1、其实不一定要logs的owner是hive,logs的父目录的owner是hive也可以。
            2、load完了之后,hdfs的logs文件就会被移动到分区目录下。如上图所示,上传上去的文件被load后就没有了。
 
可以看出,load命令其实就是mv文件而已,但是为什么还会选择load呢,原因很简单,其实在load的时候,不需要你手动创建分区,load命令直接帮你创建了。
--如果使用load,这一步是不需要的,使用hdfs的mv或者local的put到分区目录,需要新建分区。
alter
table test_partiton_date ADD PARTITION (ds=2020-07-19);

 

hive的load报错Error: EXECUTION FAILED: Task MOVE error HiveException: [Error 20531] Unable to move source hdfs:

原文:https://www.cnblogs.com/singsong-ss/p/13328873.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!